int Partition(vector<int>& v, int low, int high) { int pivotkey = v[low]; while(low < high) { while(low < high && v[high] >= pivotkey) --high; swapint(v[low], v[high]); while(low < high && v[low] <= pivotkey) ++low; swapint(v[low], v[high]); } return low; } void Qsort(vector<int>& v, int low, int high) { if(low >= high) return; int pivotloc = Partition(v, low, high); Qsort(v, low, pivotloc - 1); Qsort(v, pivotloc + 1, high); }
|