用数组实现快速排序,至少 50 个以上数据,用随机数初始化数组。 跑 5 万个数
时间: 2024-03-29 19:37:35 浏览: 17
这是一个使用 C++ 实现的快速排序的示例代码:
```
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
void quickSort(int arr[], int left, int right) {
if (left < right) {
int pivot = arr[left];
int i = left;
int j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) j--;
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) i++;
arr[j] = arr[i];
}
arr[i] = pivot;
quickSort(arr, left, i-1);
quickSort(arr, i+1, right);
}
}
int main() {
const int n = 50000;
int arr[n];
// 初始化数组
srand(time(NULL));
for (int i = 0; i < n; i++) {
arr[i] = rand() % 1000;
}
// 快速排序
clock_t start = clock();
quickSort(arr, 0, n-1);
clock_t end = clock();
// 计算时间
double time_taken = double(end - start) / double(CLOCKS_PER_SEC);
cout << "快速排序用时: " << time_taken << " 秒" << endl;
return 0;
}
```
这里使用了 C++ 的 `rand()` 函数生成随机数,并使用 `time()` 函数初始化随机数生成器。
这个示例代码可以在运行时接受一个整数参数 `n`,表示要排序的数据量。例如,你可以使用 `./sort 100000` 命令来排序 100000 个随机数。
你也可以将这个示例代码中的快速排序算法替换成其他排序算法,例如归并排序、堆排序等。同样地,你可以参考上一条回答中提到的网站 [Sorting Algorithms Animations](https://www.toptal.com/developers/sorting-algorithms) 来学习更多排序算法的实现。