基数排序的基本思路
对于一个输入数组,我们有如下形式:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
13 | 32 | 92 | 10 | 8 | 72 | 27 | 42 | 18 | 58 | 91 |
我们按照最低位优先的顺序进行排序(也可以按照最高位优先的顺序进行排序)
第一趟排序后的桶:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
10 | 91 | 32 | 13 | 27 | 8 | |||||
92 | 18 | |||||||||
72 | 58 | |||||||||
42 |
第二趟排序后的桶:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
8 | 10 | 27 | 32 | 42 | 58 | 72 | 91 | |||
13 | 92 | |||||||||
18 |
如果待排数组中存在三位数或者四位数,此时还必须进行第三趟排序或者进行第四趟排序,假设把上述输入数组中的数组元素92改为192,那我们就必须进行第三趟排序(第一次和第二次排序和上述过程相同):
第三趟排序后的桶:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
8 | 192 | |||||||||
13 | ||||||||||
10 |