Quick Sort

来源:互联网 发布:海洋动态壁纸软件 编辑:程序博客网 时间:2024/06/05 16:41

 QuickSort

基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

代码:

#include<iostream>using namespace std;int partition(int a[],int low,int high)              //大于pivot的位于pivot右侧,小于pivot的位于左侧{int pivot=a[low];while(low<high){   while(low<high&&a[high]>=pivot)--high;   a[low]=a[high];   while(low<high&&a[low]<=pivot)++low;   a[high]=a[low];}a[low]=pivot;return low;}void QSort(int a[],int low,int high)                //递归,二分{if(low<high){   int pivot=partition(a,low,high);   QSort(a,low,pivot-1);   QSort(a,pivot+1,high);}}int main()                                          //测试{int a[]={3,12,44,5,53,61,67,84,7,88,90};int length=11;QSort(a,0,length-1);for(int i=0;i<length;i++)cout<<a[i]<<' ';getchar();return 0;}


 

0 0
原创粉丝点击