正好复习一下快速排序:
一定不要忘记加&
!!!!!忘加了就寄了
class Solution { public: void swap(vector<int>& arr, int a, int b) { int temp = arr[a]; arr[a] = arr[b]; arr[b] = temp; } int partition(vector<int>& arr, int left, int right) { int pivot = arr[left]; while(left < right) { while(left < right && arr[right] >= pivot) right--; swap(arr, left, right); while(left < right && arr[left] <= pivot) left++; swap(arr, left, right); } return left; } void quickSort(vector<int>& arr, int left, int right) { if(left < right) { // 进行交换并确定pivot以用来分治 int pivot = partition(arr, left, right); // 分治,递归 quickSort(arr, left, pivot - 1); quickSort(arr, pivot + 1, right); } } vector<int> MySort(vector<int>& arr) { quickSort(arr, 0, arr.size() - 1); return arr; } };