![](https://lstatic.shangxueba.com/jiandati/h5/images/m_q_title.png)
下面关于置换-选择排序的叙述中不正确的是()。
A、置换-选择排序用于生成外排序的初始归并段
B、置换-选择排序是完成将一个磁盘文件排列成有序文件有效的外排序算法
C、置换-选择排序生成的初始归并段的长度平均是内存工作区的2倍
D、置换-选择排序是一些不等长的初始归并段
A、置换-选择排序用于生成外排序的初始归并段
B、置换-选择排序是完成将一个磁盘文件排列成有序文件有效的外排序算法
C、置换-选择排序生成的初始归并段的长度平均是内存工作区的2倍
D、置换-选择排序是一些不等长的初始归并段
下面四种内排序方法中,要求内存容量最大的是()
A.插入排序
B.选择排序
C.快速排序
D.归并排序
下面四种排序方法中,平均查找长度最小的是()
A.插入排序
B.选择排序
C.快速排序
D.归并排序
(1)建立初始堆.
①从输入文件中输入p个记录,建立大小为p的堆。
②为第一个初始归并段选择一个适当的磁盘文件作为输出文件。
(2)置换-选择。
内存工作区存在两个堆:当前堆和新堆,新堆紧接在当前堆后存放,总大小为p。
①输出当前堆的堆顶记录到选定的输出文件。
②从输入文件中输入下一个记录。若该记录排序码的值不小于刚输出记录排序码的值,则由它取代堆顶记录,并调整当前堆。若该记录排序码的值小于刚输出记录的排序码的值,则由当前堆的堆底记录取代堆顶记录,当前堆的大小减1。新输入的记录存放在当前堆的原堆底记录的位置上,成为新堆的一个记录。
③如果新堆的记录个数大于「p/2,应着手调整新堆;如果新堆中已有p个记录,表示当前堆已输出完毕,当前的初始归并段结束、应开始创建下一个初始归并段,因此必须另为新堆选择一个磁盘文件作为输出文件。
④重复步骤②~③,直到输入文件输入完毕。
(3)输出剩余记录。
①输出当前堆中的剩余记录,并对输出边调整。
②将内存工作区中的新堆作为最后一个初始归并段输出。
设p=5,排序码序列为(54,15,62,10,77,24,29,20,59,43,69,31,47,38,12,18,51,27),执行置换选择排序的结果如图10-19(a)~图10-19(g)所示.
生成的3个初始归并段为(10,15,24,29,54,59,62,69,77),(20、31,38,43,47,51),(12,18,27)。编写一个算法,实现上述利用堆的置换-选择排序.
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!