#include <iostream>
#include <ctime>
int Partition(int a[], int low, int high) {
int key = a[low];
int l = low, h = high;
while(l < h) {
while(h > l && a[h] >= key) {
h--;
}
a[l] = a[h];
while(l < h && a[l] < key) {
l++;
}
a[h]=a[l];
}
a[l] = key;
return l;
}
void QuickSort(int a[], int p, int r) {
if(p < r) {
int q = Partition2(a, p, r);
QuickSort(a, p, q-1);
QuickSort(a, q+1, r);
}
}
int main() {
int a[] = {5, 2, 10, 89, 52, 46, 8, 94, 102, 14, 41, 789, 123, 45, 89, 78, 12, 152, 489, 235, 654, 784, 156, 895, 1, 123};
std::srand(std::time(nullptr));
for(int i = 0; i < 26; i++) {
a[i] = random()%1000;
}
std::cout << "原始数据:" << std::endl;
for(int i =0; i < 26; i++) std::cout << a[i] << " ,";
std::cout << std::endl;
QuickSort(a, 0, 25);
for(int i =0; i < 26; i++) std::cout << a[i] << " ,";
std::cout << std::endl;
return 0;
}
快速排序算法
最新推荐文章于 2024-11-10 18:26:35 发布