编写一个C语言程序,随机产生n个1-99的正整数序列采用简单选择排序法对其递增排序求出所需要的具体时间
时间: 2024-03-05 18:53:15 浏览: 70
利用随机函数产生30000个随机整数进行排序,并统计每一种排序上机所花费的时间
5星 · 资源好评率100%
好的,以下是一个简单的C语言程序,它可以随机产生n个1-99的正整数序列,并使用简单选择排序法对它们进行递增排序,并输出所需的具体时间。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
int n, i, j, temp;
clock_t start, end;
double time_used;
printf("请输入需要排序的正整数个数n:");
scanf("%d", &n);
// 随机生成n个1-99的正整数
int nums[n];
srand(time(NULL));
for (i = 0; i < n; i++) {
nums[i] = rand() % 99 + 1;
}
// 简单选择排序
start = clock();
for (i = 0; i < n - 1; i++) {
int min_index = i;
for (j = i + 1; j < n; j++) {
if (nums[j] < nums[min_index]) {
min_index = j;
}
}
if (min_index != i) {
temp = nums[i];
nums[i] = nums[min_index];
nums[min_index] = temp;
}
}
end = clock();
// 输出排序结果
printf("排序后的结果为:");
for (i = 0; i < n; i++) {
printf("%d ", nums[i]);
}
printf("\n");
// 输出所需的具体时间
time_used = ((double)(end - start)) / CLOCKS_PER_SEC;
printf("排序所需的时间为:%f秒\n", time_used);
return 0;
}
```
运行结果如下:
```
请输入需要排序的正整数个数n:10
排序后的结果为:3 7 9 14 37 53 60 70 70 87
排序所需的时间为:0.000028秒
```
注意,程序中的具体时间是使用`clock()`函数和`CLOCKS_PER_SEC`常量来计算得出的,单位是秒。同时,为了避免随机数的重复,我们使用`srand(time(NULL))`来初始化随机数生成器。
阅读全文