【发布时间】:2015-12-14 19:07:39
【问题描述】:
如何计算插入排序中的比较和交换次数?我有 10 个随机数的数组。如果有人帮助我如何在这个程序中输入 20、50、100、200、500、1000、2000 和 5000 个随机数,我会非常高兴。这个问题我想了很久,还是没找到解决办法。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int array[10];
int i, j, n, temp;
n = 10;
for (i = 0; i < n; i++)
array[i] = rand();
/*Sort*/
for (i = 1; i < n; i++) {
j = i;
while ((j > 0) && (array[j - 1] > array[j])) {
temp = array[j - 1];
array[j - 1] = array[j];
array[j] = temp;
j--;
}
}
/* Print */
printf("Sorted Array\n");
for (i = 0; i < n; i++)
printf("%d \n", array[i]);
return 0;
}
【问题讨论】:
-
“如何计算插入排序中的比较和交换次数”。每次进行比较或交换时增加计数器?
-
你能帮我写代码吗?
标签: c count comparison swap insertion-sort