【发布时间】:2017-03-19 17:54:49
【问题描述】:
我在数组中随机创建了 30.000 个数字。然后我正常排序这些数字。之后,我反转,并应用插入排序算法。看看;
begin = clock();
insertion(dizi, boyut);
end = clock();
printf("\n time cost: %f z... ", (double)(end - begin) / CLOCKS_PER_SEC);
当我打印时,它显示 0.000000 秒,这是不可能的。 我哪里做错了?
这是我的插入排序代码
void insertion(int dizi[], int boyut)
{
int i, j, temp;
for(i = 1; i < boyut; i++)
{
temp = dizi[i];
j = i-1;
while((temp < dizi[j] && j >= 0))
{
dizi[j+1] = dizi[j];
j--;
}
dizi[j+1] = temp;
}
}
【问题讨论】:
-
问题是什么?
-
我的代码可能有错误,我看不到。我需要建议,谢谢。
-
检查
j>=0之前dizi[j]...但这不是您要寻找的问题 -
stackoverflow.com/questions/11227809/… 这个答案也适用于反向排序的数组。