桶排序

174 阅读1分钟

桶排序是最简单的一种排序算法。

举个栗子!

现在有如下一组数字

[1,3,6,3,2,9,0]

请将上面的数字从小到大排序。

如果使用桶排序的话步骤是这样的。

1:取数组中的最大值。这里是9

2:新建一个数组,长度为9+1.元素里都存0.

就像这样 [0,0,0,0,0,0,0,0,0,0] 这个时候这个数组的索引最大刚好与给定数组的最大值相同。

3:遍历给定的数组,当1出现时,给结果数组中索引为1的位置+1,3出现时。给数组中索引为3的位置+1,其余都一样。

这样最后得出的结果数组就会是 [0,1,1,1,0,0,1,0,0,1] 数组的索引代表原数据的值,索引对应的值为该数据出现的次数。

4:这样子数据就有序了,而且效率极高。但是也浪费空间,因为数组的长度取决于原数据中的最大值+1!