快速排序c++完整代码
时间: 2023-11-15 18:59:21 浏览: 38
以下是快速排序的C++完整代码:
#include <iostream>
using namespace std;
template<typename keytype>
int Partition(keytype data[], int low, int high) {
int pivot = data[low];
while (low < high) {
while (low < high && pivot <= data[high]) --high;
data[low] = data[high];
while (low < high && pivot >= data[low]) ++low;
data[high] = data[low];
}
data[low] = pivot;
return low;
}
template<typename keytype>
void quickSort(keytype data[], int low, int high) {
if (low < high) {
int pivotpos = Partition(data, low, high);
quickSort(data, low, pivotpos - 1);
quickSort(data, pivotpos + 1, high);
}
}
int main() {
int data = { 43,35,1,87,99,67,78,10 };
int length = 8;
cout << "原数列:" << endl;
for (int i = 0; i < length; ++i) cout << data[i] << " ";
cout << endl;
quickSort(data, 0,length-1);
cout << "现快速数列1:" << endl;
for (int i = 0; i < length; ++i) cout << data[i] << " ";
cout << endl;
return 0;
}
其中,Partition函数用于将数组分为两部分,左侧部分小于等于分界值,右侧部分大于等于分界值;quickSort函数则是递归调用Partition函数,对左右两部分进行排序。