高级数据结构与算法

1;
(46,74,16,53,14,26,40,38,86,65,27,34)
利用直接排序的思想,
第一步应该是46,与后面的数组中最小的元素进行替换;
结果为
(14,74,16,53,36,26,40,38,86,65,27,34)
第二步为n=2与的位置上的元素与min(arr[i])的i替换
res
(14,16,74,53,36,26,40,38,86,65,27,34)
第三步为重复第二步的操作
(14 16 26 53 36 74 40 38 86 65 27 34)
2;
{E,A,S,Y,Q,U,E,S,T,I,O,N}
shell排序
以{6,3,1}为增量时,比较的计算次数为
以6为增量时,以2为gap,相隔一个距离进行比较。总的比较次数为6
以3为增量时,以4为gap进行相隔。得到的序列为{E,Q,T},{A,U,I},{S,E,O},{Y,S,N} 一共会经过2*4=8词比较
因此总的比较次数是14次
3;
需要对1000个大型的记录进行排序,记录本身存储在外存中,在内存中只保存了所有记录的排序码。排序码之间的比较非常快,但是移动代价很大,因为一旦移动一个排序码,相应的外存中的记录也要移动,将涉及上百个磁盘块的移动,应该使用何种排序方法()
直接选择排序 堆排序 快速排序 插入排序
解:在排序中会涉及到稳定性的比较,直接选择排序、堆排序和插入排序会映像到序列的稳定性。

4;
某整型数组A的10个元素值依次为6,2,9,7,3,8,4,5,0,1,用快速排序方法(课程中介绍的快速排序实现方式),取第一个元素值6作为分割数,将A中元素由小到大排序,写出快速排序第一次分隔后A中的结果()。数字中间用一个空格隔开。
解:2 3 4 5 0 1 6 9 7 8
5;
在图书馆里计算机类书籍区一共有12列书架,书架上的书本来都是按照编目号排列好的,其中有些书被读者放错了地方,但通常不会超过一个书架。来将这些书重新放回正确位置,应该使用何种排序方法()
解:12列书架相当于进行堆排序
6;
一组记录的关键字为45,80,55,40,42,85,则利用堆排序的方法建立的初始最大堆为________。(数字之间用一个空格隔开,答案中不含逗号和括号)
解:最大堆就是按照降序的顺序进行排列:85 80 55 45 42 40
7;
第 7 个问题
在对一组记录(50,40,95,20,15,70,60,45,80)进行从小到大冒泡排序时,第一趟需进行相邻记录的交换的次数为( ),在整个排序过程中共需进行( )趟才可完成。
解:第一趟结果为寻找最大值,遍历后,95在最后,交换次数为1+6=7
整个排序过程,是所有的数字都要进行重新排列,故需要进行9趟才能完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值