八排序 练习题答案
排序 练习题(八) 参考答案
习题解答 2010-06-25 15:15:45 阅读33 评论0 字号:大中小
一、【答案】
在内部排序方法中,选择排序、堆排序、归并排序、基数排序的效率与原始待排序数据的排列顺序基本上无关,而快速排序适合于原始待排序数据完全无序,不适合于数据基本有序的情况。直接插入排序和Shell排序虽然平均效率不高,但当原始待排序数据基本有序时效率较高,考虑到要选择比较和移动次数少的排序方法,可选择直接插入排序或Shell排序。如还需考虑稳定性或简单性,就只能选择直接插入
排序。
二、【答案】
对序列{50,30,60,80,70,20,40}进行冒泡排序时,第一趟排序结果为:
{20,50,30,60,80,70,40} 元素30往它最终位置的相反方向移动了。
快速排序不可能出现这种现象。因为在每一趟排序过程中,以枢轴为基准,比它小的元素往前移,比它大的元素往后移。但可能出现局部的波动现象,比如对序列{50,40,90,10,20,35}进行一趟快速排序的结果为:{35,40,20,10,50,90},元素35移过了最终位置,在后面某趟排序过程中需要往后
移。
三、【答案】
(1)当步长d=5时,序列变为:
(5,12,20,4,l,30,44,66,31,8,100,80,150,61,200)
(2)当步长d=3时,序列变为:
(4,1,20,4,l2,30,8,61,31,44,66,80,150,100,200)
(3)当步长d=1时,序列变为:
(1,4,5,8,12,20,30,31,44,61,66,80,100,150,200)
四、【解答】
(1)快速排序第一次分割的结果为: {2,0,5,3,4} 6 {8,7,9,10}
(2)建堆及调整的结果,如图所示。
大根堆及选出最大关键字
若以3为基数,则数组A的10个元素依次变为{20,2,30,21,10,22,11,12,0,31},第一次分配(LSD排序)和收集后的结果为:{20,30,10,0,21,11,31,2,22,12},即{6,9,3,0,
7,4,10,2,8,5}。
五、【解答】
(1)快速排序第一趟后的状态:{20,38,10} 49 {75,90,66}。 快速排序第二趟后的状态:{10} 20 {38} 49 {75,90,66}。 (2)把关键字集合key调整成堆顶元素取最小值的堆,如图所示。
小根堆
(3) 能用队列代替栈。
使用栈保存子序列首、尾记录的地址(下标),其目的是为了处理某个子序列时,能知道其首、尾记录的地址,这样才能对该子序列进行快速排序。但这与处理子序列的先后没有什么关系,仅起保存作
用。因此,用队列也可起到栈的作用,故可取代。
(4) 归并排序要求的内存容量最多。
六、 【分析】
· 试题主要考核有关快速排序的基本思想,要求熟悉快速排序的主要特点和算法的主要步骤。 · 算法思想:设查找区间是low~high,一趟快速排序后,得到划分位置low,若low=k,则问题解决;若low>k,则在前面的子序列范围内查找;若low 【解答】 int QuickSort_Find(SqList &R, int first, int last, int k) { int low=first, high=last; KeyType pivotKey; R.r[0] = R.r[first]; pivotKey = R.r[first].key; while(low < high){ while(low high--; R.r[low] = R.r[high]; while(low low++; R.r[high] = R.r[low]; } R.r[low] = R.r[0]; if(low-first+1 == k) return low; else if(low-first+1 > k) return QuickSort_Find(R, first, low-1, k); else return QuickSort_Find(R, low+1, last,k-low+first-1); } void FindValue(SqList &R, int k) { int location; location = QuickSort_Find(R, 1, R.length, k); printf(R.r[location]); }
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




