知识大全 第8章排序(基础知识)习题练习答案
Posted 知
篇首语:与天地兮比寿,与日月兮齐光。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 第8章排序(基础知识)习题练习答案相关的知识,希望对你有一定的参考价值。
以关键字序列( )为例 分别写出执行以下排序算法的各趟排序结束时 关键字序列的状态 ( ) 直接插入排序 ( )希尔排序 ( )冒泡排序 ( )快速排序 ( ) 直接选择排序 ( ) 堆排序 ( ) 归并排序 ( )基数排序 上述方法中 哪些是稳定的排序?哪些是非稳定的排序?对不稳定的排序试举出一个不稳定的实例 答 ( )直接插入排序:(方括号表示无序区) 初始态: [ ] 第一趟 [ ] 第二趟 [ ] 第三趟 [ ] 第四趟 [ ] 第五趟 [ ] 第六趟 [ ] 第七趟 [ ] 第八趟 [ ] 第九趟 ( )希尔排序(增量为 ) 初始态: 第一趟 第二趟 第三趟
( )冒泡排序(方括号为无序区) 初始态 [ ] 第一趟 [ ] 第二趟 [ ] 第三趟 [ ] 第四趟 [ ] 第五趟 [ ] 第六趟
( )快速排序 (方括号表示无序区 层表示对应的递归树的层数) 初始态 [ ] 第二层 [ ] [ ] 第三层 [ ] [ ] [ ] 第四层 [ ] [ ] [ ] 第五层 [ ] 第六层 ( )直接选择排序 (方括号为无序区) 初始态 [ ] 第一趟 [ ] 第二趟 [ ] 第三趟 [ ] 第四趟 [ ] 第五趟 [ ] 第六趟 [ ] 第七趟 [ ] 第八趟 [ ] 第九趟
( )堆排序 (通过画二叉树可以一步步得出排序结果) 初始态 [ ] 建立初始堆 [ ] 第一次排序重建堆 [ ] 第二次排序重建堆 [ ] 第三次排序重建堆 [ ] 第四次排序重建堆 [ ] 第五次排序重建堆 [ ] 第六次排序重建堆 [ ] 第七次排序重建堆 [ ] 第八次排序重建堆 [ ] 第九次排序重建堆
( )归并排序(为了表示方便 采用自底向上的归并 方括号为有序区) 初始态 [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 第一趟 [ ] [ ] [ ] [ ] [ ] 第二趟 [ ] [ ] [ ] 第三趟 [ ] [ ] 第四趟 [ ] ( )基数排序(方括号内表示一个箱子共有 个箱子 箱号从 到 ) 初始态 第一趟 [] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] 第二趟 [ ] [] [ ] [ ] [ ] [ ] [ ] [ ] [] [ ] 第三趟 [ ] [ ] [ ] [ ] [ ] [] [ ] [ ] [ ] [ ] 在上面的排序方法中 直接插入排序 冒泡排序 归并排序和基数排序是稳定的 其他排序算法均是不稳定的 现举实例如下 以带*号的表示区别 希尔排序 [ * ] 快速排序 [ * ] 直接选择排序 [ * ] 堆排序 [ * ]
上题的排序方法中 哪些易于在链表(包括各种单 双 循环链表)上实现? 答 上题的排序方法中 直接插入排序 冒泡排序 直接选择排序 基数排序和归并排序等方法易于在链表上实现
当R[low high]中的关键字均相同时 Partion返回值是什么?此时快速排序的的运行时间是多少?能否修改Partion 使得划分结果是平衡的(即划分后左右区间的长度大致相等)? 答 此时Partion 返回值是low 此时快速排序的运行时间是 (high low)(high low )/ =O((high low)^ ) 可以修改Partion 将其中RecType pivot=R[i];句改为 RecType pivot=R[(j+i)/ ] 也就是取中间的关键字为基准 这样就能使划分的结果是平衡的
若文件初态是反序的 则直接插入 直接选择和冒泡排序哪一个更好? 答 应选直接选择排序为更好 分析如下 ( )在直接插入排序算法中 反序输入时是最坏情况 此时 关键字的比较次数 Cmax=(n+ )(n )/ ; 记录移动次数为 Mmax=(n )(n+ )/ ; Tmax=n^ n (以上二者相加) ( )在冒泡排序算法中 反序也是最坏情况 此时 Cmax=n(n )/ ; Mmax= n(n )/ Tmax= n^ n ( )在选择排序算法中 Cmax=n(n )/ Mmax= (n ) Tmax=n^ / n/ 由此可见 虽然它们的时间复杂度都是O(n^ ) 但是选择排序的常数因子为 / 因此选择排序最省时间
若文件初态是反序的 且要求输入稳定 则在直接插入 直接选择 冒泡和快速排序中就选选哪种方法为宜? 答 这四种排序算法中 直接选择 快速排序均是不稳定的 因此先予以排除 剩下两种算法中 由于直接插入算法所费时间比冒泡法更少(见上题分析) 因此选择直接排序算法为宜
有序数组是堆吗?答 有序数组是堆 因为有序数组中的关键字序列满足堆的性质 若数组为降序 则此堆为大根堆 反之为小根堆
高度为h的堆中 最多有多少个元素?最少有多少个元素?在大根堆中 关键字最小的元素可能存放在堆的哪些地方? 答 高度为h的堆实际上为一棵高度为h的完全二叉树 因此根据二叉树的性质可以算出 它最少应有 h 个元素 最多可有 h 个元素(注意一个有括号 一个没有) 在大根堆中 关键字最小的元素可能存放在堆的任一叶子结点上
相关参考
以关键字序列()为例分别写出执行以下排序算法的各趟排序结束时关键字序列的状态 ()直接插入排序()希尔排序()冒泡排序()快速排序 ()直接选择排序()堆排序()归并排序()基数排序 上述方法中哪些
将哨兵放在R[n]中被排序的记录放在R[n]中重写直接插入排序算法以单链表作为存储结构实现直接插入排序算法 设计一算法使得在尽可能少的时间内重排数组将所有取负值的关键字放在所有取非负值的关键
常见的文件组织方式有哪几种?各有何特点?文件上的操作有哪几种?如何评价文件组织的效率?答 常用的文件组织方式有顺序文件索引文件散列文件和多关键字文件 ●顺序文件的
试描述头指针头结点开始结点的区别并说明头指针和头结点的作用答 开始结点是指链表中的第一个结点也就是没有直接前趋的那个结点 链表的头指
对含有n个互不相同元素的集合同时找最大元和最小元至少需进行多少次比较? 答 设变量max和min用于存放最大元和最小元(的位置)第一次取两个元素进行比较大的放入max小的放入min从第次开
设散列表长度为散列函数h(x)=x%给定的关键字序列为试画出分别用拉链法和线性探查法解决冲突时所构造的散列表并求出在等概率情况下这两种方法查找成功和失败时的平均查找长度请问装填因子的值是什么?&nbs
请按行及按列优先顺序列出四维数组A***的所有元素在内存中的存储次序开始结点为a 解 按行优先的顺序排列时先变化右边的下标也就是右到左依次变化这个四维数组的排列是这样的(将这个排列分行写出
常见的文件组织方式有哪几种?各有何特点?文件上的操作有哪几种?如何评价文件组织的效率?索引文件散列文件和多关键字文件适合存放在磁带上吗?为什么?设有一个职工文件其记录格式为(职工号姓名性别职务年龄工资
一基础知识题试描述头指针头结点开始结点的区别并说明头指针和头结点的作用何时选用顺序表何时选用链表作为线性表的存储结构为宜?在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因
对含有n个互不相同元素的集合同时找最大元和最小元至少需进行多少次比较? 若对具有n个元素的有序的顺序表和无序的顺序表分别进行顺序查找试在下述两种情况下分别讨论两者在等概率时的平均查找长度&n