QuickSort

来源:互联网 发布:计算机编程班靠谱吗 编辑:程序博客网 时间:2024/05/17 23:02
template<typename T> void Swap(vector<T>& a, int i, int j) {T temp = a[i];a[i] = a[j];a[j] = temp;}template<typename T> void QuickSort(vector<T>& a, int start, int end) {if (start < end) {// start ~ (i-1)  < pivot;// i ~ (j-1) >= pivot;T pivot = a[end];int i = start;for (int j = start; j < end; j++) {if (a[j] < pivot) {Swap(a, i, j);i++;}}Swap(a, i, end);QuickSort(a, start, i-1);QuickSort(a, i+1, end);}}void TestQuickSort(void) {vector<int> a;a.push_back(5);a.push_back(2);a.push_back(1);a.push_back(4);a.push_back(7);a.push_back(9);a.push_back(3);QuickSort(a, 0, a.size()-1);system("pause");}