10万个随机数快速排序c++
时间: 2023-07-01 20:21:44 浏览: 100
好的,这里是使用C++实现对10万个随机数进行快速排序的代码:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int partition(int arr[], int low, int high) {
int pivot = arr[high];
int i = low - 1;
for (int j = low; j < high; j++) {
if (arr[j] < pivot) {
i++;
swap(arr[i], arr[j]);
}
}
swap(arr[i + 1], arr[high]);
return i + 1;
}
void quickSort(int arr[], int low, int high) {
if (low < high) {
int pi = partition(arr, low, high);
quickSort(arr, low, pi - 1);
quickSort(arr, pi + 1, high);
}
}
int main() {
const int n = 100000;
int arr[n];
srand(time(NULL)); // 设置随机数种子
// 生成10万个随机数
for (int i = 0; i < n; i++) {
arr[i] = rand() % 1000000; // 生成0~999999之间的随机数
}
clock_t begin = clock(); // 记录开始时间
quickSort(arr, 0, n - 1); // 进行快速排序
clock_t end = clock(); // 记录结束时间
cout << "Sorted array: \n";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
double elapsed_secs = double(end - begin) / CLOCKS_PER_SEC;
cout << "Time elapsed: " << elapsed_secs << " seconds" << endl;
return 0;
}
```
这个程序会生成10万个0~999999之间的随机数,然后使用快速排序进行排序,并输出排序后的结果和排序所用的时间。由于数据较大,排序所用的时间可能会比较长。
阅读全文