数据结构如何测试一个函数的运行时间
时间: 2024-02-22 10:57:02 浏览: 65
在数据结构中测试一个函数的运行时间,可以使用和 C++ 相同的方法,即使用 <chrono> 头文件中的 high_resolution_clock。不过,测试数据将会是数据结构中的数据,而不是简单地调用一个函数。
以下是一个示例代码,用于测试一个排序算法(快速排序)的运行时间:
```c++
#include <iostream>
#include <chrono>
#include <vector>
#include <cstdlib>
#include <ctime>
using namespace std;
using namespace std::chrono;
void quicksort(vector<int>& arr, int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[left];
int i = left + 1;
int j = right;
while (i <= j) {
while (i <= j && arr[i] < pivot) {
i++;
}
while (i <= j && arr[j] >= pivot) {
j--;
}
if (i <= j) {
swap(arr[i], arr[j]);
}
}
swap(arr[left], arr[j]);
quicksort(arr, left, j - 1);
quicksort(arr, j + 1, right);
}
int main() {
srand(time(NULL)); // 设置随机数种子
int n = 1000000; // 测试数据大小
vector<int> arr(n);
for (int i = 0; i < n; i++) {
arr[i] = rand() % n; // 生成随机数
}
auto start = high_resolution_clock::now(); // 记录开始时间
quicksort(arr, 0, n - 1); // 调用需要测试的函数
auto end = high_resolution_clock::now(); // 记录结束时间
auto duration = duration_cast<microseconds>(end - start); // 计算时间差
cout << "Time taken: " << duration.count() << " microseconds" << endl;
return 0;
}
```
这个例子中,我们生成了 1000000 个随机数,调用了快速排序算法,并使用 high_resolution_clock::now() 函数来记录开始和结束时间。最后,我们计算时间差,并将结果打印到控制台上。
阅读全文