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");
}
QuickSort
最新推荐文章于 2024-05-14 10:51:55 发布