小码哥《恋上数据结构与算法第二季》笔记(八):桶排序(Bucket Sort)

1,470 阅读1分钟

我的Github地址

小码哥《恋上数据结构与算法》笔记

极客时间《iOS开发高手课》笔记

iOS大厂面试高频算法题总结

iOS面试资料汇总

桶排序(Bucket Sort)

一、概念

  • 执行流程
    • 创建一定数量的桶(比如用数组,链表作为桶)。
    • 按照一定的规则(不同类型的数据,规则不同),将序列中的元素均匀分配到对应的桶。
    • 分别对每个桶进行单独排序。
    • 将所有非空桶的元素合并成有序序列。

二、实际操作

  • 首先有如下一个数组:
  • 数组中有8个元素,那么创建8个桶。
  • 元素在桶中的索引:元素值 * 元素数量
  • 对每个桶中的元素进行排序:
  • 依次将桶中元素存入数组即可:

三、代码实现

  • 空间复杂度:O(n + m)m是桶的数量。

四、十大排序算法

  • 冒泡,选择,插入,归并,快速,希尔,堆排序,属于比较排序
  • 比较排序无法突破O(nlogn)的效率。