#include <iostream> using namespace std; template<class T> void QuickSort(T *a, const int left, const int right) // 这是代表的是左右边的下标, { if(left < right) { //选枢轴 int i = left; int j = right + 1; // 为什么要加1, int pivot = a[left]; //进行划分 do{ do i++;while(a[i] < pivot); do j--;while(a[j] > pivot); if(i < j) swap(a[i],a[j]); }while(i < j); swap(a[left],a[j]); // 递归 QuickSort(a,left,j-1); // 左边部分进行递归, QuickSort(a,j+1,right); // 右边部分进行递归, } } int main() { int k[] = {8,6,4,2,0,1,3,5,7,9,100}; // 100就是代表的加多一个的意思,加多的数要比所有的数都大, QuickSort(k,0,9); for(int i = 0; i < 10; i++) cout << k[i] << " "; cout << endl; return 0; }