| 【基础知识题】
1. 以关键码序列(503,087,512,061,908,170,897,275,653,426)为例,手工执行以下排序算法,写出每一趟排序结束时的关键码状态:
(1) 直接插入排序; (2) 希尔排序(增量 d[1]=5 ); (3) 快速排序; (4) 堆排序; (5) 归并排序; (6)
基数排序。 2. 若对下列关键字序列按10.3.2节和10.5节中所列算法进行快速排序或归并排序,分别写出三次调用过程 Partition 和过程 Merge
后的结果。 ( Tim, Kay, Eva, Roy, Dot, Jon, Kim, Ann, Tom, Jim, Guy, Amy)
3. 试问在1题所列各种排序方法中,哪些是稳定的?哪些是不稳定的?并为每一种不稳定的排序方法举出一个不稳定的实例。 4. 不难看出,对长度为n的记录序列进行快速排序时,所需进行的比较次数依赖于这
n 个元素的初始排列。 (1) n=7 时在最好情况下需进行多少次比较? 请说明理由。 (2) 对 n=7 给出一个最好情况的初始排列实例。
5. 判别以下序列是否为堆(小顶堆或大顶堆)。如果不是,则把它调整为堆(要求记录交换次数最少)。 (1) (100, 86, 48, 73, 35,
39, 42, 57, 66, 21); (2) (12, 70, 33, 65, 24, 56, 48, 92, 86, 33); (3)
(103, 97, 56, 38, 66, 23, 42, 12, 30, 52, 06, 20); (4) (05, 56, 20, 23, 40,
38, 29, 61, 35, 76, 28, 100)。 | |
【基础知识题】 | |