排序算法----基数排序

假设现在有n个数需要进行从小到大的排序,现在使用基数排序方法进行实现。
假设这n个数为[9,7,28,76,3,1,55,7]。

基数排序基于一个有十个键值的hash表,为
{
“0”:undefined,
“1”:undefined,
“2”:undefined,
“3”:undefined,
“4”:undefined,
“5”:undefined,
“6”:undefined,
“7”:undefined,
“8”:undefined,
“9”:undefined,
}

基数排序要进行几轮,取决于最大的数有多少位。
第一轮:
将个位数相同的值存到同一个桶中,然后将从0-9点桶中取出来的数加入到一个数组
在举例中如下:
{
“0”:undefined,
“1”:[1],
“2”:undefined,
“3”:[3],
“4”:undefined,
“5”:[55],
“6”:[76],
“7”:[7,7],
“8”:[28],
“9”:[9],
}
取出数组如下:
[1,3,55,76,7,7,28,9]

第二轮:
将十位数相同的值存到同一个桶中,然后将从0-9点桶中取出来的数加入到一个数组
在举例中如下:
{
“0”:[1,3,7,7,9],
“1”:undefined,
“2”:[28],
“3”:undefined,
“4”:undefined,
“5”:[55],
“6”:undefined,
“7”:[76],
“8”:undefined,
“9”:undefined,
}
取出数组如下:
[1,3,7,7,9,28,55,76]

第三轮:
将百位数相同的值存到同一个桶中,然后将从0-9点桶中取出来的数加入到一个数组,在它们都被加入同一个桶时,计算介绍
在举例中如下:
{
“0”:[1,3,7,7,9,28,55,76],
“1”:undefined,
“2”:undefined,
“3”:undefined,
“4”:undefined,
“5”:undefined,
“6”:undefined,
“7”:undefined,
“8”:undefined,
“9”:undefined,
}
取出数组如下:
[1,3,7,7,9,28,55,76]

你可能感兴趣的:(排序算法----基数排序)