12345678910111213141516171819202122232425262728
vector <char> quickSort(vector <char> Letters) { if (Letters.size() == 1) return Letters; int pivot = (rand() % Letters.size()); vector <char> Less; vector <char> Greater; Less.reserve(Letters.size()); Greater.reserve(Letters.size()); for (int i = 0; i < Letters.size(); i++) { if (Letters[i] > Letters[pivot]) { Greater.push_back(Letters[i]); } else { Less.push_back(Letters[i]); } } //PSEUDO return quickSort(Less) + quickSort(Greater); }
12
template<class iterator> void quicksort(iterator begin, iterator end); // range [)
123
Less = quicksort(Less); Greater = quicksort(Greater); return /* Less + Greater */;