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;
}
9万+

被折叠的 条评论
为什么被折叠?



