首页 > 试题广场 >

对记录(54,38,96,23,15,72,60,45,83

[单选题]
对记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第八个记录45插入到有序表时,为找到插入位置需比较()次
  • 4
  • 6
  • 5
  • 3
插入排序的原理搞明白,当进行45的插入时,前面的数有15 23 38 54 60 72 96 这样就需要和96 72 60 54 38 进行比较,一共是5次。
发表于 2018-09-09 19:58:12 回复(0)
更多回答
推荐
由插入排序算法,当要插入第八个元素时,前七个元素已经有序为:
15 23 38 54 60 72 96
第八个记录45从后向前比较到38时,45>38,找到了前八个元素有序应该放的位置,停止循环,从96到38,共比较了5次。
选择C
编辑于 2017-05-23 14:24:18 回复(7)
。。。。为啥不是从前往后?  4次 
发表于 2020-03-22 21:33:47 回复(1)
正确答案D 哎, 也就是从前向后比较的,
发表于 2017-07-01 12:07:20 回复(0)
插入排序过程:
第一步:54
第二步:比较38与54,将38插入到54前面,38 54
第三步:比较96与54,将96插入到54后面,38 54 96
第四步:比较23与96,23与54,23与38,将23插入到38 前面,23 38 54 96
第五步:比较15与96,15与54,15与38,15与23,将15插入到23前面, 15 23 38 54 96
第六步:比较60与96,60与72,60与54,将60插入到72前面54后面,15 23 38 54 60 72 96
现在要插入48,需要进行的比较是:48与96,48与72,48与60,48与54,48与38,将48插入到38后面54前面,一共需要5次比较
发表于 2018-04-08 21:12:58 回复(0)
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次。
发表于 2017-07-05 11:23:08 回复(0)
这题直接数前面有几个比它自己大的数然后 +1 就好了

插入排序从后往前比, 当第八个记录45要插入时, 前面必然是有序的, 所以要比较比它本身大的数. 

+1是因为最后还要和比它小一点的数比较一次, 才能确定它插入的位置

所以答案是: 4+1
发表于 2018-08-14 08:54:16 回复(0)
发表于 2020-10-18 21:00:37 回复(0)
他的前面的元素已经默认有序了,往里面插入时需比他大的元素肯定要比,然后再比较一个比它小的表示,最终位置找到。即为前面比他大的元素个数+1;
编辑于 2019-04-26 09:32:11 回复(0)
因为涉及到元素的移动,向后移动,所以要从后往前比较,这样比较一次还能移动一次,如果从前往后,移动会很难受。所以5次。C
发表于 2018-08-22 17:02:04 回复(0)
插入排序是从后往前比较的,因为左边已经是有序的了
发表于 2020-05-04 23:05:37 回复(0)
从前往后 15,23,38,54,60,72,83,96,要依次比较到54,不应该是4吗?从后往前也是比较到38,答案是6啊。答案是5我想不通
发表于 2022-10-21 21:01:34 回复(0)
咱就是说,题目能不能说明一下是升序还是降序!(虽然我选对了)
发表于 2022-03-04 19:59:55 回复(0)
插入排序从后往前比,当第八个记录45要插入时,前面必须有序。数前面有几个比自己大的数加1
发表于 2022-02-14 10:59:09 回复(0)
主要是从后往前比较,然后插入
发表于 2020-04-06 15:17:55 回复(0)
c我知道,那a呢?为什么不能跟小的比?从前往后就是4次啊,这又不说清楚
发表于 2019-12-19 14:26:00 回复(0)
从后向前比较,参考代码可知。
发表于 2018-08-14 08:41:54 回复(0)
由插入排序算法,当要插入第八个元素时,前七个元素已经有序为:
15 23 38 54 60 72 96
第八个记录45从后向前比较到38时,45>38,找到了前八个元素有序应该放的位置,停止循环,从96到38,共比较了5次
发表于 2018-07-09 21:17:45 回复(0)
如果从大到小排,从后往前比,不就是四次么?
发表于 2018-05-14 19:49:48 回复(0)
同理,想问为什么不能是从前往后比较?如果那样不就是4次了吗
发表于 2018-01-27 10:07:27 回复(0)
直接插入排序从后向前依次比较插入
编辑于 2017-08-09 16:25:49 回复(0)