如何计算插入排序中的比较次数和交换次数?我有10个随机数组。如果有人帮助我如何在这个程序中添加20,50,100,200,500,1000,2000和5000个随机数,我将会非常高兴。我一直在想这个很长时间,但仍然找不到解决办法。插入排序 - C中的比较和交换计数
#include
#include
#include
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;
}
2015-12-14
Petra
+1
“我怎么能指望在插入排序比较和交换的数量”是一个代码。每次进行比较或交换时增加计数器? –
+0
你能帮我用代码吗? –