起泡排序不管怎样执行比较的趟数还是比较多,为了减少趟数,所以有了快速排序
排序原理:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
一趟快速排序的算法是:
那么具体我们来看一下如何实现
void Sort(int r[],int first,int end){
int i=first;
int j=end;
while(i<j&&r[i]<r[j])j--;
if(i<j){
temp = r[i];
r[i] = r[j];
r[j] = temp;
i++;
}
while(i<j&&r[i]<r[j])i++;
if(i<j){
temp = r[i];
r[i] = r[j];
r[j] = temp;
j--;
}
return i;
}
void QuickSort(int r[],int first,int end){
if(first<end){
int pivot = Sort(r,first,end);
QuickSort(r,0,pivot-1);
QuickSort(r,pivot+1,end);
}
}