解答
正确答案是 C
由插入排序算法,当要插入第八个元素时,前七个元素已经有序为:
15 23 38 54 60 72 96
第八个记录45从后向前比较到38时,45>38,找到了前八个元素有序应该放的位置,停止循环,从96到38,共比较了5次。
C
13条回复
评论

for(i=2;i<=length;i++){
if(r[i]<r[i-1]) {
r[0]=r[i]; //放在哨兵的位置
for(j=i-1;r[j]>r[0];j--)
{r[j+1]=r[j];} //后移
r[j+1]=r[0]; //哨兵的记录放在该位置
}
}
到45时,
已有:15 23 38 54 60 72 96
比较45<96,然后依次后移,72 60 54, 38不满足,循环停止。共比较5次。
发表于 2018-10-13 13:40:40
0
0
回复

这题直接数前面有几个比它自己大的数然后 +1 就好了
插入排序从后往前比, 当第八个记录45要插入时, 前面必然是有序的, 所以要比较比它本身大的数.
+1是因为最后还要和比它小一点的数比较一次, 才能确定它插入的位置
所以答案是: 4+1
发表于 2018-10-13 13:40:24
0
0
回复
上一页
1
2
下一页
