数据结构 第八章排序

上传人:夏** 文档编号:491279102 上传时间:2023-08-03 格式:DOCX 页数:13 大小:30.96KB
返回 下载 相关 举报
数据结构 第八章排序_第1页
第1页 / 共13页
数据结构 第八章排序_第2页
第2页 / 共13页
数据结构 第八章排序_第3页
第3页 / 共13页
数据结构 第八章排序_第4页
第4页 / 共13页
数据结构 第八章排序_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《数据结构 第八章排序》由会员分享,可在线阅读,更多相关《数据结构 第八章排序(13页珍藏版)》请在金锄头文库上搜索。

1、第八章排序:习题习题一、选择题 1在所有排序方法中,关键字比较的次数与记录的初始排列次序无关的是( )。A. 希尔排序 B.冒泡排序 C.插入排序D.选择排序2设有1000 个无序的记录,希望用最快的速度挑选出其中前10 个最大的记录,最好选 用( )排序法。A. 冒泡排序 B.快速排序C.堆排序 D.基数排序3在待排序的记录序列基本有序的前提下,效率最高的排序方法是( )。A.插入排序 B.选择排序C.快速排序 D.归并排序4不稳定的排序方法是指在排序中,关键字值相等的不同记录的前后相对位置( )。A.保持不变 B.保持相反C.不定 D.无关5内部排序是指在排序的整个过程中,全部数据都在计算

2、机的( )中完成的排序。A.内存储器B.外存储器C.内存储器和外存储器D.寄存器6. 用冒泡排序的方法对n个数据进行排序,第一趟共比较()对记录。A. 1B.2 C.n-l D.n7. 直接插入排序的方法是从第( )个记录开始,插入前边适当位置的排序方法。A. 1 B.2 C.3 D.n8. 用堆排序的方法对n个数据进行排序,首先将n个记录分成()组。A. 1B.2 C.n-l D.n9. 归并排序的方法对n个数据进行排序,首先将n个记录分成()组,两两归并。A. 1B.2 C.n-l D.n10. 直接插入排序的方法要求被排序的数据( )存储。A.必须是顺序 B.必须是链表C.顺序或链表 D

3、.二叉树11. 冒泡排序的方法要求被排序的数据( )存储。A.必须是顺序 B.必须是链表C.顺序或链表 D.二叉树12. 快速排序的方法要求被排序的数据( )存储。A.必须是顺序 B.必须是链表C.顺序或链表 D.二叉树13. 排序方法中,从未排序序列中依次取出记录与已排序序列(初始时为空)中的记 录进行比较,将其放入已排序序列的正确位置上的方法,称为( )。A.希尔排序 B.冒泡排序C.插入排序 D.选择排序14. 每次把待排序的记录划分为左、右两个子序列,其中左序列中记录的关键字均小 于等于基准记录的关键字,右序列中记录的关键字均大于基准记录的关键字,则此排序方法 叫做( )。A.堆排序

4、B.快速排序C.冒泡排序 D. Shell排序15. 排序方法中,从未排序序列中挑选记录,并将其依次放入已排序序列(初始时为 空)的一端的方法,称为( )。A.希尔排序 B.归并排序 C.插入排序D.选择排序16. 用某种排序方法对线性表(25, 84, 21, 47, 15, 27, 68, 35, 20)进行排序时,记 录序列的变化情况如下:(1) (25,84,21,47,15,27,68,35,40)(2) (20,15,21,25,47,27,68,35,84)(3) (15,20,21,25,35,27,47,68,84)(4) (15,20,21,25,27,35,47,68,8

5、4) 则所采用的排序方法是( )。A.选择排序B.希尔排序C.归并排序D.快速排序17一组记录的关键字为(25,50,15,35,80,85,20,40,36,70),其中含有5个 长度为 2 的有序表,用归并排序方法对该序列进行一趟归并后的结果为( )。A. (15,25,35,50,20,40,80,85,36,70)B. (15,25,35,50,80,20,85,40,70,36)C. (15,25,50,35,80,85,20,36,40,70)D. (15,25,35,50,80,20,36,40,70,85)18n 个记录的直接插入排序所需记录关键码的最大比较次数为( )。A.

6、nlog2n B. n2/2C.(n+2)(n_1)2D. n-l19n 个记录的直接插入排序所需的记录最小移动次数为( )。A. 2(n-l) B. n2/2C. (n+3)(n-2)/2 D. 2n 20对以下关键字序列用快速排序法进行排序,( )的情况排序最慢。A. 19,23,3,15,7,21,28B. 23,21,28,15,19,3,7C. 19,7,15,28,23,21,3D. 3,7,15,19,21,23,2821快速排序在( )情况下最不利于发挥其长处,在( )情况下最易发挥其长处。A. 被排序的数据量很大B. 被排序的数据已基本有序C. 被排序的数据完全无序D. 被排

7、序的数据中最大的值与最小值相差不大E. 要排序的数据中含有多个相同值 22一组记录的关键字为(45,80,55,40,42,85),则利用快速排序的方法,以第一个记录为基准得到一次划分结果是( )。A. (40,42,45,55,80,85) .B. (42,40,45,80,55,85)C. (42,40,45,55,80,85)D. (42,40,45,85,55,80)23对 n 个记录的线性表进行快速排序,为减少算法的递归深度,以下叙述正确的是( )。A. 每次分区后,先处理较短的部分B. 每次分区后,先处理较长的部分C. 与算法每次分区后的处理顺序无关D. 以上都不对24直接插入排序

8、和冒泡排序的平均时间复杂度为( ),若初始数据有序(即正序), 则时间复杂度为( )。A.0(n)B.0(log2n) C.0(nlog2n) D. O(n2) 25一组记录的关键字为(45, 80, 55, 40, 42, 85),则利用堆排序的方法建立的初始 堆为( )。A. (80,45,55,40,42,85)B. (85,80,55,40,42,45)C. (85,80,55,45,42,40)D. (85,55,80,42,45,40) 26下列序列中是堆的有( )。A. (12,70,33,65,24,56,48,92,86,33)B. (100,86,48,73,35,39,4

9、2,57,66,21)C. (103,56,97,33,66,23,42,52,30,12)D. (5,56,20,23,40,38,29,61,35,76)27设有 1000 个无序的记录,希望用最快的速度挑选出前 20 个最大的记录,最好选 用( )算法。A.冒泡排序 B.归并排序 C.堆排序D.基数排序28下列排序算法中,( )算法会出现下面情况:在最后一趟结束之前,所有记录不在 其最终的位置上。A.堆排序 B.冒泡排序 C.快速排序D.插入排序29在含有 n 个记录的小根堆(堆顶记录最小)中,关键字最大的记录可能存储在( ) 位置上。A. Ln/21 B. Ln/2J-2 C.1 D.

10、 Ln/2_1+330. 已知数据表A中每个记录距其最终位置不远,则采用()算法最省时间。A.堆排序B.插入排序C.直接选择排序 D.快速排序31. 下列排序算法中,某一趟(轮)结束后未必能选出一个记录放在其最终位置上的 是( )。A.堆排序 B.冒泡排序C.直接插入排序 D.快速排序32. 已知待排序的n个记录可分为n/k个组,每个组包含k个记录,且任一组内的各记 录均分别大于前一组内的所有记录并小于后一组内的所有记录,若采用基于比较的排序,其 时间下界应为( )。A.O(nlog 2 n) B.0(nlog2 k)C.0 (klog2 n) D.0(k log 2 k)33. 若要尽可能地

11、完成对实数数组的排序,且要求排序是稳定的,则应选( )。A.快速排序 B.堆排序C.归并排序D.基数排序34. 在含有n个记录的大根堆(堆顶记录最大)中,关键字最小的记录可能存储在() 位置上。A. Ln/21 B. Ln/2_1-1C.1D. Ln/2_1+135. 对任意的 7 个关键字迸行排序,至少要进行( )次关键字之间的两两比较。A. 13 B. 14C. 15 D. 16二、填空题1. 排序是将一组任意排列的记录按的值从小到大或从大到小重新排列成有序的序列。2 .在排序前,关键字值相等的不同记录间的前后相对位置保持的排序方法称为稳定的排序方法。3. 在排序前,关键字值相等的不同记录

12、间的前后相对位置的排序方法称为不稳定的排序方法。4. 外部排序是指在排序前被排序的全部数据都存储在计算机的存储器中。5. 写出一种不稳定的排序方法的名称。6. 在直接插入排序的方法中,当需要将第f个数据插入时,此时前i-l个数据是的。7. 对一个基本有序的数据进行排序 排序方法运算次数最小。8. 在对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行直接插入排序时,当把 第 7 个记录 60插入到有序表时,为寻找插入位置需比较 次。9. 在利用快速排序方法对一组记录(54, 38, 96, 23, 15, 72, 60, 45, 83)进行快速排序时,递归调用

13、而使用的栈所能达到最大深度为,共递归调用的次数为,其中第二次递归调用是对组进行快速排序。10. 在堆排序、快速排序和归并排序中,若只从存储空间考虑,则应首先选取方法,其次选取,最后选取方法;若只从排序结果的稳定性考虑,则应选取;若只从平均情况下排序最快考虑,则应选取;若只从最坏情况下排序最快并且要节省内存考虑,则应选取方法。11. 在堆排序和快速排序中,若原始记录接近正序或反序,则选用 ,若原始记录无序,则最好选用。12. 在考虑如何选择排序中,若初始数据基本正序,则选用 ;若初始数据基本反序,则选用。13. 对 n 个记录的序列进行冒泡排序时,最少的比较次数是。三、简答题1. 已知序列:17

14、, 18, 60, 40, 7, 32, 73, 65, 85),请给出采用冒泡排序法对该 序列作升序排序时每一趟的结果。2. 已知序列:503, 87, 512, 61, 908, 170, 897, 275, 653, 462),请给出采用快 速排序法对该序列作升序排序时每一趟的结果。3. 已知序列:503, 87, 512, 61, 908, 170, 897, 275, 653, 462),请给出采用基 数排序法对该序列作升序排序时的每一趟的结果。4. 已知序列:503, 17, 512, 908, 170, 897, 275, 653, 426, 154, 509, 612, 677

15、,765,703, 941),请给出采用希尔排序法(Dl=8)对该序列作升序排序时每一趟的结果。5. 已知序列:70, 83, 100, 65, 10, 32, 7, 9),请给出采用插入排序法对该序列 作升序排序时每一趟的结果。6. 已知序列:10, 18, 4, 3, 6, 12, 1, 9, 18, 8),请给出采用希尔排序法对该序 列作升序排序时每一趟的结果。四、算法设计题1. 编写一个对给定的环形双向链表进行简单插入排序的函数。2. 编写一个下沉式“冒泡”函数。3. 编写一个对给定环形双向链表进行简单选择排序的函数。4. 如果把堆定义成:一种拟满树且每个结点的值既小于左孩子又小于右孩子,请写一 函数建立一个初始堆。5. 设计一个函数修改冒泡排序过程以实现双向冒泡排序。6. 已知奇偶转换排序如下所述:第一趟对所有奇数的i,将ai和ai+l进行比较,第 二趟对所有偶数的i,将ai和ai+1进行比较,每次比较时若sisi+1,则将两者交换

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号