基本思想

设待排序序列的长度为 n,桶排序的过程如下:


Python 实现

tim-chow 的 Github


时间复杂度

在最好的情况下,也就是桶的数量 m 等于元素数量 n,且每个桶内只有 1 个元素时,时间复杂度是 O(n);

在最坏的情况下,也就是所有数据元素都落在一个桶中时,那么桶排序退化为普通的排序算法;

在平均情况下,桶排序的时间复杂度为 O(n + m × (n / m) × log(n / m)) = O(n × (log(n / m) + 1))


空间复杂度

O(mn)