#include<iostream>using namespace std;int pnumsrtition(int nums[], int low, int high){ int pivot_key = nums[low];//用區間的第1個記錄作為基準 while (low < high){//從區間兩端交替向中間掃描,直到low=high為止 while (low < high&&nums[high] >= pivot_key) high--;//從右向左掃描,查到第1個關鍵字小於pivot_key的記錄nums[hgih] if (low < high) nums[low++] = nums[high];//相當於交換nums[low]和nums[high] while (low < high&&nums[low] <= pivot_key) low++; if (low < high) nums[high--] = nums[low]; } nums[low] = pivot_key;//基準記錄已被最後定位 return low;}void quick_sort(int nums[], int low, int high){ int pivot; //劃分後的基準記錄的位置 if (low < high){ pivot = pnumsrtition(nums, low, high);//做劃分 quick_sort(nums, low, pivot - 1); quick_sort(nums, pivot + 1, high); }}void print_numsrrnumsy(int nums[], int len){ for (int i = 0; i < len; i++) cout << nums[i] << ' '; cout << endl;}int main(){ int nums[] = { 9, 1, 5, 8, 3, 7, 4, 6, 2 }; int len = sizeof(nums) / sizeof(int); quick_sort(nums, 0, len - 1); print_numsrrnumsy(nums, len); return 0;}