快速排序计时 c语言
时间: 2023-10-30 13:07:45 浏览: 47
快速排序是一种常用的排序算法,它的时间复杂度为O(nlogn)。在C语言中,你可以使用以下代码来计时快速排序的运行时间:
```
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int partition(int arr[], int low, int high) {
int pivot = arr[high];
int i = (low - 1);
for (int j = low; j <= high- 1; 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() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr)/sizeof(arr[0]);
clock_t start, stop;
double duration;
start = clock();
quickSort(arr, 0, n-1);
stop = clock();
duration = ((double)(stop - start)) / CLOCKS_PER_SEC;
printf("快速排序的运行时间为:%f 秒\n", duration);
return 0;
}
```