目录

力扣总结 常见算法(一):排序

排序算法是非常经典的一类算法,常作为算法教程的第一章。

最常用的是快速排序、归并排序、堆排序,其思想也不仅应用在排序中。

特别的,当数据范围相对于数据规模较小时,计数排序可能更快。 而桶排序的应用较为灵活,能巧妙地解决一些问题。

python 中一般直接调用 sort 函数来排序,采用的是 TimSort算法, 一种结合了归并排序和插入排序的混合排序算法。

解决很多数组问题时,都可以先排序。比如取不重复元组的问题,通用方法是:

  • 先排序,然后每轮取元素时,相同的数跳过,即可保证元组不重复

1 基础

  • 0021 合并两个有序链表
  • 0506 相对名次
  • 0912 排序数组
  • 1030 距离顺序排列矩阵单元格

2 进阶

  • 0023 合并K个升序链表
  • 0147 对链表进行插入排序
  • 0148 排序链表
  • 0274 H 指数
  • 0853 车队

3 挑战

  • 0179 最大数
  • 0215 数组中的第K个最大元素

*4 桶排序

  • 0164 最大间距
  • 0220 存在重复元素 III