8.2 插入排序

01.对5个不同的数据元素进行直接插入排序,最多需要进行的比较次数是()。
A.8
B.10
C.15
D.25
01.B 直接插入排序在最坏的情况下要做n(n-1)/2次关键字的比较,当n=5时,关键字的比较次数为10。注意本题不考虑与哨兵的比较。

02.在待排序的元素序列基本有序的前提下,效率最高的排序方法是().
A.直接插入排序
B.简单选择排序
C.快速排序
D.归并排序
02.A 由于这里的序列基本有序,使用直接插入排序算法的时间复杂度接近0(n),而使用其他算法的时间复杂度均大于O(n)。

03.对有n个元素的顺序表采用直接插入排序算法进行排序,在最坏情况下所需的比较次数
是();在最好情况下所需的比较次数是()。
A.n-1
B. n+1
C.n/2
D.n(n-1)/2
03.D、A 待排序表为反序时,直接插入排序需要进行n(n-1)/2 次比较(从前往后依次需要比较1, 2,…,n-1次);待排序表为正序时,只需进行n-1次比较。同样注意不考虑与哨兵的比较。

04.数据序列{8,10, 13, 4, 6, 7, 22, 2,3}只能是()两趟排序后的结果。
A.简单选择排序
B.起泡排序
C.直接插入排序
D.堆排序
04.C 冒泡排序和选择排序经过两趟排序后,应该有两个最大(或最小)元素放在其最终位置;插入排序经过两趟排序后,前3个元素应该是局部有序的。只有可能是插入排序。
注意:在排序过程中,每趟都能确定一个元素在其最终位置的有冒泡排序、简单选择排序、堆排序、快速排序,其中前三者能形成全局有序的子序列,后者能确定枢轴元素的最终位置。

05.用直接插入排序算法对下列4个表进行(从小到大)排序,比较次数最少的是()。
A.94, 32,40,90,80,46,21,69
B.21,32,46,40,80,69,90,94
C.32,40,21,46,69,94,90,80
D.90,69,80,46,21,32,94,40
05.B 首先,越接近正序的序列,比较次数应是越少的;而越接近逆序,比较次数越多。不难得出选项B和C是比较接近正序的,然后分别判断两个序列的比较次数,以选项B为例:第一趟,插入32,比较1次;第二趟,插入46,比较1次;第三趟,插入40,由于40比46小但比32大,所以比较2次;第四趟,插入80,比较1次;第五趟,插入69,比较2次……共比较9次。同理求出选项C的比较次数为11次。故选择选项B。

06.在下列算法中,()算法可能出现下列情况:在最后一趟开始之前,所有元素都不在最
终位置上.
A.堆排序
B.冒泡排序
C.直接插入排序
D.快速排序
06.C 在直接插入排序中,若待排序列中的最后一个元素应插入表中的第一个位置,则前面的有序子序列中的所有元素都不在最终位置上。

07.希尔排序属于()。
A.插入排序
B.交换排序
C.选择排序
D.归并排序
07.A 希尔排序是对直接插入排序算法改进后提出来的,本质上仍属于插入排序的范畴。

08.对序列{15, 9, 7, 8, 20,-1,4}用希尔排序方法排序,经一趟后序列变为{15,-1, 4, 8, 20, 9,
7},则该次采用的增量是().
A.1
B.4
C.3
D.2
08.B 希尔排序将序列分成若干组,记录只在组内进行交换。由观察可知,经过一趟后9和-1交换,7 和4交换,可知增量为4.

09.若对于第8题中的序列,经一趟排序后序列变成{9,15,7,8,20,-1,4},则采用的是下列
的().
A.选择排序
B.快速排序
C.直接插入排序
D.冒泡排序
09.C 前两个元素局部已经有序,很明显一趟直接插入排序算法有效。再排除其他算法即可。

10.对序列{98,36,-9, 0, 47, 23, 1,8,10,7}采用希尔排序,下列序列()是增量为4的一趟
排序结果.
A.{10,7,-9,0,47, 23, 1, 8, 98, 36}
B.{-9, 0, 36, 98, 1, 8, 23, 47, 7,10}
C.{36,98,-9, 0, 23, 47, 1, 8, 7, 10}
D.以上都不对
10.A 增量为4意味着所有相距为4的记录构成一组,然后在组内进行直接插入排序,经观察,只有选项A满足要求。

11.折半插入排序算法的时间复杂度为().
A. O(n)
B.O(nlog2n)
C. O(n²)
D. O(n^3)
11.C 虽然折半插入排序是对直接插入排序的改进,但它改进的只是比较的次数,而移动次数未发生变化,时间复杂度仍为O(n²)。
12.有些排序算法在每趟排序过程中,都会有一个元素被放置到其最终位置上,()算法不
会出现此种情况。
A.希尔排序
B.堆排序
C.冒泡排序
D.快速排序
12.A 由于希尔排序是基于插入排序算法而提出的,它不一定在每趟排序过程后将某一元素放置到最终位置上。

13.以下排序算法中,不稳定的是()。
A.冒泡排序
B.直接插入排序
C.希尔排序
D.归并排序
13.C 希尔排序是一种复杂的插入排序方法,它是一种不稳定的排序方法。

14.以下排序算法中,稳定的是()。
A.快速排序
B.堆排序
C.直接插入排序
D.简单选择排序
14.C 基于插入、交换、选择的三类排序方法中,通常简单方法是稳定的(直接插入、折半插入、冒泡),但有一个例外就是简单选择,复杂方法都是不稳定的(希尔、快排、堆排)。

15.【2009统考真题】若数据元素序列{11,12,13, 7, 8, 9, 23,4,5}是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是().
A.冒泡排序
B.插入排序
C.选择排序
D.2路归并排序
15.B 每趟冒泡和选择排序后,总会有一个元素被放置在最终位置上。显然,这里{11,12}和{4,5}所处的位置并不是最终位置,因此不可能是冒泡和选择排序。2路归并算法经过第二趟后应该是每4个元素有序的,但{11,12,13,7}并非有序,因此也不可能是2路归并排序。

16.【2012 统考真题】对同一待排序序列分别进行折半插入排序和直接插入排序,两者之间可能的不同之处是().
A.排序的总趟数
B.元素的移动次数
C.使用辅助空间的数量
D.元素之间的比较次数
16.D 折半插入排序与直接插入排序都将待插入元素插入前面的有序子表,区别是:确定当前记录在前面有序子表中的位置时,直接插入排序采用顺序查找法,而折半插入排序采用折半查找法。排序的总趟数取决于元素个数n,两者都是n-1趟。元素的移动次数都取决于初始序列,两者相同。使用辅助空间的数量也都是0(1)。折半插入排序的比较次数与序列初态无关,为O(nlog2n);而直接插入排序的比较次数与序列初态有关,为O(n)~O(n²)。

17.【2014统考真题】用希尔排序方法对一个数据序列进行排序时,若第1趟排序结果为 9,1,4,13, 7, 8, 20,23,15,则该趟排序采用的增量(间隔)可能是().
A.2
B.3
C.4
D.5
17.B 首先,第二个元素为1,是整个序列中的最小元素,因此可知该希尔排序为从小到大排序。然后考虑增量问题,若增量为2,则第1+2个元素4明显比第1个元素9要小,选项A排除;若增量为3,则第i,i+3,i+ 6 (i= 1,2,3)个元素都为有序序列,符合希尔排序的定义;若增量为4,则第1个元素9比第1+4个元素7要大,选项C排除;若增量为5,则第1个元素9比第1+5个元素8要大,选项D排除,选择选项B。

18.【2015统考真题】希尔排序的组内排序采用的是().
A.直接插入排序
B.折半插入排序
C.快速排序
D.归并排序
18.A 希尔排序的思想是:先将待排元素序列分割成若干子序列(由相隔某个“增量”的元素组成),分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。

19.【2018统考真题】对初始数据序列(8,3, 9, 11, 2, 1, 4, 7, 5, 10, 6)进行希尔排序。若第一趟排序结果为(1,3,7, 5, 2, 6, 4,9,11,10,8),第二趟排序结果为(1, 2, 6, 4, 3, 7, 5, 8, 11, 10, 9),则两趟排序采用的增量(间隔)依次是()。
A.3,1
B.3,2
C.5,2
D.5,3
19.D 如下图所示。 第一趟分组:8,1,6;3,4;9,7;11,5;2,10;间隔为5,排序后组内递增。
第二趟分组:1,5,4,10;3, 2, 9, 8;7,6,11;间隔为3,排序后组内递增。
初始序列:8,3,9,11,2,1,4,7,5,10,6
在这里插入图片描述
故答案选 D。

二、综合应用题
01.给出关键字序列{4,5, 1,2,6, 3}的直接插入排序过程。

01.【解答]
直接插入排序过程如下。
初始序列:
4,5, 1, 2, 6,3
第一趟:
4, 5, 1,2, 6, 3
(将5插入{4})
第二趟:
1,4,5,2, 6, 3
(将1插入{4,5})
第三趟:
1,2,4,5, 6, 3
(将2插入{1,4,5})
第四趟:
1,2,4,5, 6, 3
(将6插入{1,2,4,5})
第五趟:
1, 2, 3, 4,5, 6
(将3插入{1,2,4, 5,6})

02.给出关键字序列{50,26, 38, 80, 70, 90, 8, 30, 40, 20}的希尔排序过程(取增量序列为d=
{5,3,1},排序结果为从小到大排列)。

02.【解答]
原始序列:
50,26,38,80, 70,90,8,30,40,20
第一趟(增量5):
50,8,30,40, 20,90,26,38,80, 70
第二趟(增量3):
26,8,30,40, 20,80,50,38,90, 70
第三趟(增量1):
8,20,26,30,38,40,50,70,80,90
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值