桶排序的简单理解

桶排序

桶排序(BucketSort)算法也是一种经典的以空间换时间的算法。首先给定一定数量的桶,每个桶涵盖了一个数值区间。当所排序的元素属于该区间,就将该元素分配到这个桶中,然后再使用插入排序算法,对每个桶分别排序,最后将每个桶中的元素输出

桶排序的动画

 可以看到动画以30作为一个区间


桶排序过程

1.初始化装入连续区间元素的n个桶,每个桶用来装一段区间中的元素

2.遍历待排序的数据,将其映射到对应的桶中,保证每个桶中的元素都在同一个区间范围中

3.对每个桶进行排序,最终将所有桶中排好序的元素连起来


当桶的数量和需要排序的元素一样多,桶排序此时就变成了计数排序,时间复杂度为O(n)

计数排序

计数排序借助了一个初始化为零的一维数组,数组中第i个元素保存i在待排序数组中出现的次数,在遍历完整个待排序数组之后,只需要将出现过的数字打印出来即可,出现了几次就打印几次


... ...


猜你喜欢

转载自blog.csdn.net/qq_28038873/article/details/80362664