头歌:排序学习效果自测-练习题 | 快排、冒泡、堆排、归并、基数、递归、希尔、计数

排序详细知识点看往期文章排序

 

目录

一、选择题

1.下列排序算法中,( )算法在进行一趟相应的排序处理结束后不一定能选出一个元素放到其最终位置上。(2.0分)

2.折半查找法要求查找表中各元素的键值必须是( )

3.一组记录的排序码为(25, 48, 16, 35, 79, 82, 23, 40, 36, 72),其中含有5个长度为2的有序表,按归并排序的方法对该序进行一趟归并后的结果为( )。

4.对具有n个元素的有序查找表采用折半查找算法查找一个键值, 其最坏比较次数的数量级为()

5.利用直接选择排序算法对有n个记录的数据表进行排序,在最坏情况下,记录的交换次数为

6.一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为( )

7.用某种排序方法对序列(25,84, 21, 47, 15, 27, 68, 35, 20)进行排序,记录序列的变化情况

如下:

8.下列排序方法中,哪一种方法的比较次数与待排序序列的初始排列状态无关? ( )

9.对于键值序列(11,13, 18, 60, 15, 7, 19, 25, 12, 80) ,用筛选法建堆,必须从键值为(15 )

的结点开始。

 10.一组关键字记录是(26, 15, 37, 18, 21, 59, 47, 6),对其进行Shell排序,假设初始增量d=4,

则第一趟排序后的结果为( )

 二、简答题

1.待排序序列{25, 84, 71, 47, 15, 27, 68, 35, 20},写出一趟归并排序后的结果

2.待排序序列{25, 84, 71, 47, 15, 27, 68, 35, 20}, 写出使用基数排序,一趟分配及收集后的结果

 3.初始关键字序列{25,84, 21, 47, 15, 27, 68, 35, 20}, 若使用shelI排序,

写出一趟shell排序后的结果(5分) ,需要几趟排序才能得到有序序列? (1分)

4.初始关键字序列{25,84, 21, 47, 15, 27, 68, 35, 20}, 写出一趟快排序后的结果

 5.初始关键字序列{25, 84, 21, 47, 15, 27, 68, 35, 20}, 若使用堆排序将序列降序排列,画出初始堆,并写出一趟排序后的序列。


一、选择题

1.下列排序算法中,( )算法在进行一趟相应的排序处理结束后不一定能选出一个元素放到其最终位置上。(2.0分)

A.直接选择排序 能够取出当前无序序列中最(小or大)值与第一位置的元素互换位置

B.冒泡排序总是两两比较选出一个最值位于数组前面

C.归并排序. 除非在缓存区一次放入所有的序列(这样得不偿失),否则不能确定最终位置

D.堆排序 每趟总能选出一个最值位于根节点

√快速排序选出的枢轴在一趟排序中就位于了它最终的位置

×插入排序(直接、二分)不一定会位于最终的位置,因为不确定后面插入的元素对于前面的元素是否产生影响。

×希尔排序(本质也是插入排序)只在子序列中直接插入排序。所以不能确定。

希尔排序每次是对划分的子表进行排序,得到局部有序的结果,所以不能保证每一趟排序结束都能确定一个元素的最终位置

所以能够在一趟结束后,就选出一个元素在其最终的位置上的排序是否就只有 :

简单选择排序、快速排序、冒泡排序、堆排序


2.折半查找法要求查找表中各元素的键值必须是( )

A.递增或递减

B.递增

C.递减

基本思想是:首先用要查找的关键字k与中间位置的结点的关键字相比较,这个中间结点把线性表分成了两个子表,若比较结果相等则查找完成;若不相等,再根据k与该中间结点关键字的比较大小确定下一步查找哪个子表,这样递归进行下去,直到找到满足条件的结点或者该线性表中没有这样的结点。


3.一组记录的排序码为(25, 48, 16, 35, 79, 82, 23, 40, 36, 72),其中含有5个长度为2的有序表,按归并排序的方法对该序进行一趟归并后的结果为( )。

A.16, 25, 35, 48, 23, 40,79, 82, 36, 72

B.16, 25, 35, 48, 79, 82,23, 36, 40, 72

C.16, 25,48, 35, 79, 82,23, 36, 40, 72

D.16,25, 35, 48, 79, 23, 36,40,72, 82


4.对具有n个元素的有序查找表采用折半查找算法查找一个键值, 其最坏比较次数的数量级为()

A. O(logn)

B. O(n)

C. (nlogn)

D. O(n^2)


5.利用直接选择排序算法对有n个记录的数据表进行排序,在最坏情况下,记录的交换次数

A.n^2

B. n-1

C.n

D.∩+1

1)移动次数最好时(有序)为0,最坏时(逆序)为3*(n-1),比较次数始终为n*(n-1)/2

2)每一趟排序有一个元素到达位置;

3)选择排序是不稳定排序。

算法时间复杂度:最好O(n^2) 最坏O(n^2) 平均O(n^2);

算法改进之后,最好情况(有序)为移动0,比较(n-1),算法时间复杂度为O(n)

最坏情况(逆序)为移动3*(n-1)次,比较n*(n-10/2次,算法时间复杂度为O(n^2)


6.一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用堆排序的方法建立的初始堆为( )


7.用某种排序方法对序列(25,84, 21, 47, 15, 27, 68, 35, 20)进行排序,记录序列的变化情况

如下:

20 15 21 25 47 27 68 35 84(<25放在左边,>25放在右边)

15 20 21 25 35 27 47 68 84 (左侧:20为基数;右侧:47为基数     快速排序)

15 20 21 25 27 35 47 68 84 (35,27进行子序列排序)

则采取的排序方法是( )

A.直接选择排序

B.冒泡排序

C.快速排序.

D.二路归并排序


8.下列排序方法中,哪一种方法的比较次数与待排序序列的初始排列状态无关? ( )

A.直接插入排序

B.起泡排序

C.快速排序

D. 直接选择排序


9.对于键值序列(11,13, 18, 60, 15, 7, 19, 25, 12, 80) ,用筛选法建堆,必须从键值为(15 )

的结点开始。


 10.一组关键字记录是(26, 15, 37, 18, 21, 59, 47, 6),对其进行Shell排序,假设初始增量d=4,

则第一趟排序后的结果为( )

A.(18, 6, 37, 26, 15,59, 47, 21)

B.(21, 15, 37, 6, 26, 59, 47, 18)

C.(26, 15, 37, 18, 21, 59, 47, 6)

D.(6,15, 18, 21, 26, 37, 37, 59)


 二、简答题

1.待排序序列{25, 84, 71, 47, 15, 27, 68, 35, 20},写出一趟归并排序后的结果


2.待排序序列{25, 84, 71, 47, 15, 27, 68, 35, 20}, 写出使用基数排序一趟分配收集后的结果


 3.初始关键字序列{25,84, 21, 47, 15, 27, 68, 35, 20}, 若使用shelI排序,

写出一趟shell排序后的结果(5分) ,需要几趟排序才能得到有序序列? (1分)

希尔排序基本步骤:

步骤一:选择适当步长,碰到偶数,则加1变成奇数,

(以减少相同下标的元素进行重复比较),进行分组。

步骤二:分另对各分分组进行插入排序。重复步骤一。

步骤三:步长依次减半,当步长为1时,且已进行过插入排序后,数组,

已有序。

第一趟排序增量d1=4:

{15,7,21,35,25,84,68,47,20}

第二趟排序增量d2=2:

{15,27,21,35,25,84,68,47,20}

第三趟再进行一趟整体的插入排序

{15,20,21,25,27,35,47,68,84}

当步长为(1=3/2) (取奇数)时,我们执行一次最普通的插入排序

由于此时,整个数组已有序,所以最后一次插入排序效率还是比较的。


4.初始关键字序列{25,84, 21, 47, 15, 27, 68, 35, 20}, 写出一趟快排序后的结果

基本策略:设法把待排序序列按某种标准分为大小两组

例如选择第一条记录R0作为区分标准,将所有大于R0的记录移到R0的右边,

 所有小于R0的记录移到R0的左边

递归地分别对两组记录采用同样方式排序,直至划分到每个子部分只包含一个记录


 5.初始关键字序列{25, 84, 21, 47, 15, 27, 68, 35, 20}, 若使用堆排序将序列降序排列,画出初始堆,并写出一趟排序后的序列。

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
排序作业 选择题(每题2分,共22分)。 1.若表R在排序前已按键值递增顺序排列,则(   )算法的比较次数最少。 A.直接插入排序            B.快速排序     C.归并排序                D.选择排序 2.对各种内部排序方法来说,(   )。 A.快速排序时间性能最佳                             B.归并排序是稳定的排序方法 C.快速排序是一种选择排序                          D.堆排序所用的辅助空间比较大 3.  排序算法的稳定性是指(   )。 A.经过排序之后,能使值相同的数据保持原顺序中的相对位置不变。 B.经过排序之后,能使值相同的数据保持原顺序中的绝对位置不变。 C.排序算法的性能与被排序元素的数量关系不大 D.排序算法的性能与被排序元素的数量关系密切 4. 如下序列中,(   )序列是大顶。 A.  {4,5,3,2,1}               B.  {5,3,4,1,2}        C.  {1,2,3,4,5}               D.  {1,2,3,5,4} 5. 若将{3,2,5,4,1}排为升序,则实施快速排序一趟后的结果是(   )(其中,枢轴记录取首记录)。 A.  {1,2,3,4,5}                  B.  {1,2,4,5,3}        C.  {1,3,5,4,2}                  D.  {2,5,4,1,3} . 若将{1,2,3,4,5,6,7,9,8}排为升序,则(   )排序方法的“比较记录”次数最少。 A.  快速排序                   B.  简单选择排序     C.  直接插入排序               D.  冒泡排序 7. 若将{5,4,3,2,1}排为升序,则(   )排序方法的“移动记录”次数最多。 A.  快速排序                                B.  冒泡排序 C.  直接插入排序                       D.  简单选择排序 8. 用简单选择排序将顺序表{2,3,1 ,3′,2′}排为升序,实施排序1趟后结果是{1 ,3,2 ,3′,2′},则排序3趟后的结果是(   )。 A.  {1 ,2,3 ,3′,2′}                       B.  {1 ,2 ,2′,3 ,3′} C.  {1 ,2′,2 ,3 ,3′}                      D.  {1 ,2 ,2′,3′,3 } 9.下列排序算法中,(    )排序在某趟结束后不一定选出一个元素放到其最终的位置上。 A.选择             B.冒泡           C.归并           D. 10.下列排序算法中,稳定的排序算法是(  )。 A.堆排序                B.直接插入排序   C.快速排序              D.希尔排序 11.堆排序的时间复杂度是(    )。 A.O(n*n)                 B.O(n*log n)       C.O(n)                   D.O(log n) 填空题(每空4分,共4分)。 对n个元素进行归并排序,空间复杂度为         。 综合题(共24分)。 1. (共12分)有一组待排序的关键字如下: (54,38,96,23,15,72,60,45,83) 分别写出希尔排序(d=5)、快速排序堆排序、归并排序第一趟升序排序后的结果(其中堆排序的第一趟指序列完成初始、将顶元素置为最末位置后其余元素调整为的结果)(每个3分)。 希尔排序:   快速排序堆排序: 归并排序:  2. (共12分)已知数据序列为(12,5,9,20,6,31,24),对该项数据序列进行排序,分别写出直接插入排序、简单选择排序、快速排序堆排序、二路归并排序基数排序第一趟升序排序结果(其中堆排序的第一趟指序列完成初始、将顶元素置为最末位置后其余元素调整为的结果)(每个2分)。 直接插入排序: 简单选择排序: 快速排序堆排序: 二路归并排序基数排序:    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值