对于给定的一组关键字(41,62,13,84,35,96,57,39,79,61,15,83),分别写出执行以下各排序算法的每一趟排序结果。
(1)希尔排序(5,2,1)。
(2)快速排序。
(3)基数排序。
(1)希尔排序 d1=5时,排序结果为:15 57 13 79 35 41 62 39 84 61 96 83 d2=2时,排序结果为:13 39 15 41 35 57 62 61 84 79 96 83 d3=1时,排序结果为:13 15 35 39 41 57 61 62 79 83 84 96 (2)快速排序 一趟:[15 39 13 35] 41 [96 57 84 79 61 62 83] 二趟:[13]15[39 35] 41 [83 57 84 79 61 62]96 三趟:13 15[35] 39 41 [62 57 61 79]83[84]96 四趟:13 15 35 39 41 [61 57] 62 [79] 83 84 96 五趟:13 15 35 39 41 [57] 61 62 79 83 84 96 六趟:13 15 35 39 41 57 61 62 79 83 84 96 (3)基数排序 初始关键字序列:41,62,13,84,35,96,57,39,79,61,15,83 因为被排序的关键字ki取值范围是0~9 9的整数,所以可以将其分解,先对个位数 (kimod 10得到)进行箱排序,然后再对十位数(kidiv 10得到)进行箱排序,这样只需要1 0个 标号为0,1,2,…,9的箱子。这就是基数排序。 因此,按上述方法,第一趟先按个位扫描装箱(即按个位有序)得: 41 61 62 13 83 84 35 15 96 57 39 79 第二趟再按十位扫描装箱(即按十位上有序)得: 13 15 35 39 41 57 61 62 79 83 84 96