int partion(int a[], int low, int upper); void quik_sort(int a[], int left, int right) { if(left < right) { int q = partion(a, left, right);//根据基准,调整数组 quik_sort(a, left, q-1);//对基准左边序列进行快排 quik_sort(a, q+1, right);//对基准右边序列进行快排 } } int partion(int a[], int low, int upper) { int key = a[low]; int i= upper; //将大数放到数组的右侧 for(int j=upper; j>low; j--) { //如果大于key就放到最右侧 if(a[j]>key) { int tmp=a[j]; a[j]=a[i]; a[i]=tmp; i--;//i标识下次可将大数放在的位置 } } //将key放在正确的位置 a[low]= a[i]; a[i] = key; return i; }