描述利用快速排序算法将读入的N个数从小到大排序后输出。快速排序是信息学竞赛的必备算法之一。对于快速排序不是很了解的同学可以自行上网查询相关资料掌握后独立完成。C++选手请不要试图使用STL虽然你可以使用sort一遍过但是你并没有掌握快速排序算法的精髓。输入描述第1行为一个正整数N第2行包含N个空格隔开的正整数ai为你需要进行排序的数数据保证了Ai不超过10^9。输出描述将给定的N个数从小到大输
以下是使用C++编写的快速排序算法:
#include <iostream>
using namespace std;
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int pivot = arr[(left + right) / 2];
while (i <= j) {
while (arr[i] < pivot) i++;
while (arr[j] > pivot) j--;
if (i <= j) {
swap(arr[i], arr[j]);
i++;
j--;
}
}
if (left < j) quickSort(arr, left, j);
if (i < right) quickSort(arr, i, right);
}
int main() {
int N;
cin >> N;
int arr[N];
for (int i = 0; i < N; i++) {
cin >> arr[i];
}
quickSort(arr, 0, N - 1);
for (int i = 0; i < N; i++) {
cout << arr[i];
if (i != N - 1) {
cout << " ";
}
}
cout << endl;
return 0;
}
希望对你有帮助
原文地址: http://www.cveoy.top/t/topic/iNtR 著作权归作者所有。请勿转载和采集!