快速排序
定义
快速排序(Quicksort)是对冒泡排序的一种改进。
快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
参考视频
参考博客
代码
/*
快速排序
*/
#include <iostream>
using namespace std;
void quicksort(int *a,int left,int right){
int i,j,basic,temp;
if(left > right){
return;
}
basic = a[left];
i = left;
j = right;
while(i != j){
while(a[j] >= basic && i < j){
j--;
}
while(a[i] <= basic && i < j){
i++;
}
if(i < j){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
a[left] = a[i];
a[i] = basic;
quicksort(a,left,i-1);
quicksort(a,j+1,right);
}
int main(){
cout << "快速排序" << endl;
int a[10] = {11,2,3,55,34,10,22,35,21,29};
quicksort(a,0,9);
for(int i = 0; i < 10; i++){
cout << a[i] << " " ;
}
return 0;
}