用c++编写以下程序:使用经典冒泡排序算法实现整数元素排序,数据元素大小随机排列,整数个数长度分别为1000和10000,比较两种不同长度整数元素排序的运算时间。 提示:c++的头文件ctime/time.h中的库函数clock()提供了测试函数运行时间的方法。
时间: 2024-09-19 11:05:41 浏览: 7
在C++中,你可以使用`<iostream>`、`<ctime>`和`<cstdlib>`头文件来实现这个功能。首先,你需要生成随机数组,然后使用冒泡排序算法对这两个不同长度的数组进行排序,并测量它们的执行时间。以下是一个简单的示例:
```cpp
#include <iostream>
#include <ctime>
#include <cstdlib>
#include <vector>
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
clock_t start = clock();
for (int i = 0; i < n - 1; ++i) {
for (int j = 0; j < n - i - 1; ++j) {
if (arr[j] > arr[j + 1]) {
std::swap(arr[j], arr[j + 1]);
}
}
}
clock_t end = clock();
double time_spent = static_cast<double>(end - start) / CLOCKS_PER_SEC;
std::cout << "Bubble sort took " << time_spent << " seconds to sort an array of size " << n << std::endl;
}
int main() {
const int sizes[] = {1000, 10000}; // 数据长度
for (auto length : sizes) {
std::vector<int> random_array(length);
// 生成随机数组
srand(time(0));
for (auto& num : random_array) {
num = rand() % 10000; // 示例中的随机范围为0到9999
}
// 排序并计算时间
bubbleSort(random_array.data(), length);
}
return 0;
}
```
在这个程序中,我们首先声明了一个`bubbleSort`函数,它接受一个整数数组和其长度作为参数。函数内部使用了`clock()`函数来记录开始和结束时间。在`main()`函数中,我们创建了两个不同长度的随机整数数组,分别对其进行排序,并打印出各自排序所花费的时间。