首页 > 试题广场 >

在对一组记录(54,38,96,23,15,72,60,45

[单选题]
在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较()次
  • 5
  • 6
  • 4
  • 3
发表于 2016-08-05 08:30:01 回复(2)
在插入第7个数,说明前面的数字已经有序了。
即数字为15--- 23---38---54----72---96---60---45---83
现在对滴7个数字60进行插入,需要向前找到插入点。依次比较,96,72,54.最后插入在54后面。
所以比较3次。
发表于 2016-08-05 19:21:25 回复(1)
直接插入排序是从后往前比较。参考博客http://blog.csdn.net/tan313/article/details/51146170
发表于 2016-04-17 21:07:06 回复(8)
题目未给出是升序还是降序
如果这样:96->72->54->38->23->15->60->45->83
那么60分别和15、23、38、54、72比较,比较次数为5。
如果这样 15->23->38->54->72->96->60->45->83
那么60分别和96、72、54比较,比较次数为3。
所以,我觉得这题出的不够严谨。
发表于 2019-07-26 15:02:38 回复(1)
直接插入排序:每次拿出无序数列中的最前面的一个数,然后放进排序好的数列中的正确位置:
第7次插入时,排序好的数列的情况是:15,23,38,54,72,96;
然后抽出60准备插入,
从后向前进行比较,60-96/60-72/60-54(找到)
所以比较次数是三次
发表于 2016-07-11 09:34:22 回复(0)
排序到60的时候,之前的有序数字依次是:15 23 38 54 72 96 60...。首先60和96比较,比96小,再和72比较,比72小,再和54比较,比54大,因此插入54和72之间,一共比较三次~~
发表于 2015-11-26 11:01:25 回复(2)
我的想法是插入时候使用他就在进行排序前几次进行省略
15 23 38 54 72 96前六次插入结果
这个时候插入第七个元素60使用二分查找法  读取第三个个数字
38<60 向后查找
获取 54<60继续向后取值
72>60得到是在54和72之间
所以比较了三次
发表于 2016-08-05 11:30:03 回复(2)
只需要找比60大的元素有几个,因为每次选择的是待排序序列中最小的关键码。
编辑于 2023-12-11 23:19:18 回复(0)
插入排序是从后往前比较
发表于 2020-04-28 19:05:16 回复(0)
直接插入排序从后往前比较
发表于 2019-09-11 10:23:22 回复(0)
前面数有序,直接看逆序对的数目,+1
发表于 2018-06-27 11:07:52 回复(0)
有没有可能已排好序的是降序?
发表于 2016-09-23 00:22:14 回复(0)
3次
发表于 2016-08-05 20:02:24 回复(0)