给我一个完整的c语言描述排序时间复杂度的程序
时间: 2024-03-13 13:45:06 浏览: 53
排序算法的时间复杂度
好的,下面是一个使用C语言描述排序时间复杂度的程序:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// 声明排序函数
void bubbleSort(int arr[], int n);
int main() {
int n = 10000; // 数组大小
int arr[n];
srand(time(NULL)); // 设置随机种子
for (int i = 0; i < n; i++) {
arr[i] = rand() % 1000; // 填充随机数
}
clock_t start_time = clock(); // 记录排序开始时间
bubbleSort(arr, n); // 调用排序函数
clock_t end_time = clock(); // 记录排序结束时间
double time_spent = (double)(end_time - start_time) / CLOCKS_PER_SEC; // 计算排序耗时
printf("排序耗时:%f 秒\n", time_spent);
printf("排序时间复杂度:O(n^2)\n");
return 0;
}
// 冒泡排序函数
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
```
这个程序使用了冒泡排序算法对一个大小为 10000 的数组进行排序,并计算了排序耗时。通过 clock() 函数记录排序开始时间和结束时间,然后用 CLOCKS_PER_SEC 常量将时间转换为秒。程序还输出了排序的时间复杂度,这里假设使用的是 O(n^2) 的冒泡排序算法。
阅读全文