快速排序
int partition(vector<int> &arr, int left, int right) { int key = arr[right]; int i = left; for (int j = left; j <right; j++) { if (arr[j] < key) { swap(&arr[j], &arr[i]); i++; } } swap(&arr[i], &arr[right]); return i; } void qSort(vector<int> &arr, int left, int right) { if (left < right) { int mid = partition(arr, left, right); qSort(arr, left, mid - 1); qSort(arr, mid + 1, right); } } void qucikSort(vector<int> &arr) { qSort(arr, 0, arr.size() - 1); }
浙公网安备 33010602011771号