#include<iostream>
using namespace std;
#define MAXN 20
typedef int keytype;
typedef struct {
keytype key;
}Redtype;
typedef struct {
Redtype r[MAXN + 1];
keytype length;
}Sqlist;
int Partition(Sqlist& L, int low, int high) {
L.r[0] = L.r[low];
int pivotkey = L.r[0].key;
while (low < high) {
while (low < high && L.r[high].key >=pivotkey)
high--;
L.r[low] = L.r[high]; //将交换改进成移动
while (low < high && L.r[low].key <= pivotkey)
low++;
L.r[high] = L.r[low];
}
L.r[low] = L.r[0];
return low;
}
void Qsort(Sqlist& L, int low, int high) {
if (low < high) {
int pivotloc = Partition(L, low, high);
Qsort(L, low, pivotloc - 1);
Qsort(L, pivotloc + 1, high);
}
}
int main() {
Sqlist L;
L.length = 9;
for (int i = 0; i < L.length; i++) {
cin >> L.r[i].key;
}
Qsort(L,0,8);
for (int i = 1; i < L.length; i++)
cout << L.r[i].key << ' ';
}
数据结构-排序-快速排序(c++实现)
猜你喜欢
转载自blog.csdn.net/qq_43710881/article/details/105894885
今日推荐
周排行