c++

int partition (vector<pair<bool,int> >&arr, int low, int high) { int pivot = arr[high].second; // pivot int left = low; int right = high - 1; while(true){ while(left <= right && arr[left].second < pivot) left++; while(right >= left && arr[right].second > pivot) right--; if (left >= right) break; swap(arr[left].second, arr[right].second); left++; right--; } swap(arr[left].second, arr[high].second); return left; } void quickSort(vector<pair<bool,int> >&arr, int low, int high) { if (low < high) { int pi = partition(arr, low, high); quickSort(arr, low, pi - 1); quickSort(arr, pi + 1, high); } }

Public Last updated: 2021-10-07 09:10:50 AM