- C++
发明人:陈锦润 发明项目:快速排序
- 2024-9-21 21:04:49 @
#include<iostream>
void quick_sort(long long *arr, int low, int high) {
int i = low,j = high;
long long key = arr[i];
while(i < j) {
while(i < j && arr[j] >= key) {
--j;
}
arr[i] = arr[j];
while(i < j && arr[i] <= key) {
++i;
}
arr[j] = arr[i];
}
arr[i] = key;
if(i - 1 > low) {
quick_sort(arr, low, i - 1);
}
if(i - 1 < high) {
quick_sort(arr, i + 1, high);
}
return;
}
long long num[30000];
int main() {
printf("请输入排序元素个数:\n");
int quant;
scanf("%d",&quant);
if(quant <= 0 || quant > 30000) {
printf("Are you kidding me?");
return 0;
}
printf("请输入各个元素的数值:\n");
std::ios::sync_with_stdio(false);
for(int i = 0; i < quant; ++i) {
std::cin >> num[i];
if(std::cin.fail() == true){
printf("Your number is fail!");
return 0;
}
}
quick_sort(num, 0, quant - 1);
printf("排序完毕:\n");
for(int i = 0; i < quant; ++i) {
printf("%lld ",num[i]);
}
return 0;
}
这玩意是我上网了解快排原理后自己写的 还真不难
1 comments
-
陈锦润 LV 8 @ 2024-9-21 21:05:39
我写这玩意的最大收获其实是知道了数量的英文名缩写是quant
- 1