快速排序算法C++代码
#include <iostream>
using namespace std;
void quicksort(int a[], int left, int right) {
int i = left, j = right, temp = a[right]; //temp中存的就是基准数(轴)
if(left >= right) return;
while(i != j) {
//顺序很重要,轴最左则先右后左,轴最右则先左后右
while(a[i] <= temp && i < j) i++;
while(a[j] >= temp && i < j) j--;
if(i < j){
int t = a[i];
a[i] = a[j];
a[j] = t;
}
}
//最终将基准数归位
a[right] = a[i];
a[i] = temp;
quicksort(a, left, i-1); //继续处理左边的
quicksort(a, i+1, right); //继续处理右边的
}
int main(){
int a[] = {72,6,57,88,85,42,83,73,48,60,60};
quicksort(a, 0, sizeof(a) / sizeof(a[0]) - 1);
for(int i = 0; i < sizeof(a) / sizeof(a[0]); i++)
cout << a[i] << " ";
return 0;
}