问答题 已知关键字序列F={78,19,63,30,89,84,55,69,28,83}。要求:
问答题 将该序列调整为“小顶”堆,并给出调整过程。请从时间和空间两方面对简单选择排序、树形选择排序和堆排序作一比较。
【正确答案】正确答案:小顶堆:19,28,55,30,83,84,63,69,78,89简单选择排序、树形选择排序和堆排序都属于选择排序,都是不稳定排序。简单选择排序的基本思想是基于选择,开始有序序列长度为零,第i(1≤i 2),平均时间复杂度是O(n2),空间复杂度是O(1)。树形排序和堆排序的论述见上面第43题。
【答案解析】
问答题 若采用链式基数排序方法排序,请写出第一趟“分配”之后各队列的状态和第一趟“收集”之后的关键字序列。并请简要说出严蔚敏教材中所介绍的基数排序方法和其他排序方法有什么区别?【江苏大学2005三、3(15分)】
【正确答案】正确答案:初始静态链表:78→19→63→30→89→84→55→69→28→83第一次分配后各队列状态(B是队列数组,f指向队头,e指向队尾)。 B[0].f→30←B[0].e; B[3].f→63→83←B[3].e; B[4].f→84←B[4].e B[5].f→55←B[5].e; B[8].f→78→28←B[8].e; B[9].f→19→89→69←B[9].e 第一次收集得到:p→30→63→83→84→55→78→28→19→89→69 基数排序过程如下:基数排序首先按关键字的组成设置若干队列。如果关键字由字母组成,则设置26个队列,若由数字组成,则设置10个队列。按最低位(LSD)优先,进行“分配”和“收集”。因为本例关键字由数字组成,首先按其“个位数”的取值“分配”到0~9共10个队列中,之后按队列0~9的顺序将它们“收集”在一起,收集时上一队列的队尾与下一队列的队头相连。然后“十位数”,“百位数”,……,重复上述操作,便得到关键字的有序序列。为减少所需辅助存储空间,采用静态链表作存储结构,即链式基数排序。
【答案解析】