废话少说,直接show code.
#include<iostream>
using namespace std;
//快速排序partation
int partSort(int *array, int left, int right) //(左右下标)
{
int &key = array[right]; //以最后一个元素为基准
while(left < right){
while(left < right && array[left] <= key){
left++;
}
while(left < right && array[right] >= key){
right--;
}
int temp = array[left];
array[left] = array[right];
array[right] = temp;
}
int tmp = array[left];
array[left] = key;
key = tmp;
return left;
}
void quickSort(int *array, int low, int high){
int mid;
if(low >= high) return;
mid = partSort(array, low, high);
quickSort(array, low, mid-1);
quickSort(array, mid+1, high);
}
int main(){
int input[10]={9,2,1,5,3,8,7,0,6,4};
quickSort(input, 0, 9);//下标
for(int i=0; i<length; i++){
printf("%d ",input[i]);
}
printf("\n");
return 0;
}