我有一个c++函数,参数是int* NumList 请先在函数中算出该参数的长度,再使用BubbleSort算法排序 并计算其排序时长
时间: 2023-05-21 12:04:29 浏览: 94
好的,我可以回答这个问题。
以下是根据您提供的要求编写的C函数,用于计算一个整型数组的长度并使用冒泡排序算法对它进行排序。
```c
#include <stdio.h>
#include <time.h>
void bubbleSort(int arr[], int n) {
int i, j;
for (i = 0; i < n-1; i++) {
for (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;
}
}
}
}
void sortNumList(int* NumList) {
int length = 0;
while (*(NumList + length) != 0) {
length++;
}
clock_t begin, end;
double time_spent;
begin = clock();
bubbleSort(NumList, length);
end = clock();
time_spent = (double)(end - begin) / CLOCKS_PER_SEC;
printf("排序后的数组:");
for (int i = 0; i < length; i++) {
printf("%d ", NumList[i]);
}
printf("\n排序时长:%lf秒\n", time_spent);
}
int main() {
int NumList[] = {3, 6, 2, 1, 5, 8, 9, 7, 4, 0};
sortNumList(NumList);
return 0;
}
```
您可以将 `int NumList[]` 替换为您想要排序的整型数组,并调用 `sortNumList` 函数来计算其长度并使用冒泡排序算法进行排序。排序后,该函数将输出排序后的数组和排序时长。
希望这可以帮助您!
阅读全文