产生10000个0到9999之间的随机整数,将数据文件中的10000个数据赋给数组L(1:10000),用“冒泡”法进行排序,运行这个程序,并记下运行时间的C++代码
时间: 2024-03-14 14:43:28 浏览: 156
以下是 C++ 代码实现:
```cpp
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
const int N = 10000;
int main() {
int L[N];
int temp;
clock_t start, end;
double duration;
// 生成随机数
srand(time(NULL));
ofstream outfile("data.txt");
for (int i = 0; i < N; i++) {
int num = rand() % 10000;
outfile << num << endl;
L[i] = num;
}
outfile.close();
// 冒泡排序
start = clock();
for (int i = 0; i < N - 1; i++) {
for (int j = 0; j < N - i - 1; j++) {
if (L[j] > L[j + 1]) {
temp = L[j];
L[j] = L[j + 1];
L[j + 1] = temp;
}
}
}
end = clock();
duration = (double)(end - start) / CLOCKS_PER_SEC;
// 输出排序结果和运行时间
cout << "排序后的结果:" << endl;
for (int i = 0; i < N; i++) {
cout << L[i] << " ";
}
cout << endl;
cout << "冒泡排序的运行时间为:" << duration << "秒" << endl;
return 0;
}
```
其中,使用 `srand(time(NULL))` 生成随机数,并将随机数写入文件中;使用 `clock()` 记录程序运行时间。最后,输出排序结果和运行时间。
注意:程序中的文件操作需要包含 `<fstream>` 头文件。
阅读全文