#include <iostream> using namespace std; //快速排序算法实现 //挖坑+分治法 void quick_sort(int v[] ,int left,int right) { //int x = v[left]; if (left < right) { int i = left, j = right, x = v[left]; while (i < j ) { while ( i <j && v[j] >= x )//先从后往前找比x小的数 { j--; } if ( i < j ) //找到,填充前面那个坑 { v[i++] = v[j]; } //从前向后找第一个大于等于x的数 while (i < j && v[i] < x) { i++; } if (i < j ) { v[j--] = v[i]; } } v[i] = x;//得到调整后基准数的位置i //递归调用 quick_sort(v,left,i-1); quick_sort(v,i+1,right); } } void main() { int v[] = {2,1,5,7,4,2,98,54,52,654,23,43,25}; quick_sort(v,0,12); for (int i = 0 ; i < 13;i++) { cout<<v[i]<<" "; } cout<<endl; }