1、递归实现 #include<iostream> using namespace std; void QuickSort(int arr[], int low, int high); inline void Swap(int &a, int &b) { int temp = a; a = b; b = temp; } int main() { int arr[] = {65, 70, 75, 80, 85, 60, 55, 50, 45}; int n = sizeof(arr) / sizeof(int); cout<<"排序前为:"; for(int i=0; i<n; i++) cout<<arr[i]<<" "; cout<<endl; QuickSort(arr, 0, n-1); cout<<"排序后为:"; for(int i=0; i<n; i++) cout<<arr[i]<<" "; cout<<endl; return 0; } void QuickSort(int arr[], int low, int high) { if(low > high) return; int i = low; int j = high; int target = arr[low]; //选取低位low位置的元素作为目标元素 while(i < j) { while(j>i && arr[j]>target) j--; if(j<=i) break; while(i<j && arr[i]<=target) i++; if(i>=j) break; Swap(arr[i], arr[j]); //交换 j--; i++; } Swap(arr[low], arr[j]); //将low位的目标元素放到正确位置 QuickSort(arr, low, j-1); QuickSort(arr, j+1, high); }