十三:基数排序,以空间换时间的稳定式排序,速度很快。
前言
基数排序,属于桶排序的一种,是一种典型的空间换取时间的 稳定式排序。
一、基数排序(桶排序)介绍
1、 基数排序(radixsort)属于**“分配式排序”(distributionsort),又称“桶子法”(bucketsort)或binsort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用;
2、 基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法;
3、 基数排序(RadixSort)是桶排序的扩展**;
4、 基数排序是1887年赫尔曼·何乐礼发明的它是这样实现的:将整数按位数切割成不同的数字,然后按每个位数分别比较;
二、基数排序基本思想
1、 将所有待比较数值统一为同样的数位长度,数位较短的数前面补零;
2、 然后,从最低位开始,依次进行一次排序;
3、 这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列;
4、 这样说明,比较难理解,下面我们看一个图文解释,理解基数排序的步骤;
三、图文解释
将数组{53, 3, 542, 748, 14, 214} 使用基数排序, 进行升序排序。
数组的初始状态 array = {53, 3, 542, 748, 14, 214}
3.1 第 1 次排序
- 第1轮排序规则:
1、 将**每个元素的个位数取出,然后看这个数应该放在哪个对应的桶**(一个一维数组);
2、 按照这个桶的顺序(一维数组的下标依次取出数据,放入原来数组);
- 排序结果:
数组的第1轮排序结果 array = {542, 53, 3, 14, 214, 748}
