Tim Sort 是一种混合排序算法,由 Tim Peters 于 2002 年为 Python 编程语言设计。它结合了插入排序和归并排序的优点,专门针对实际数据中的某些模式进行优化。Tim Sort 的核心思想是将数组分割成若干个小的有序区间(称为 run),然后通过归并排序的思想将这些有序区间合并起来。

1 基本原理

(1)分割数组成 Run:

  • Tim Sort 使用了一种称为 minrun 的概念,决定了每个 run 的最小长度。minrun 的值通常位于 32 和 64 之间。算法会将输入数组分割成多个 run,每个 run 是一个有序的子序列(可能是升序或降序),长度至少为 minrun。
  • 如果当前的 run 长度小于 minrun,则使用插入排序将该 run 排序。

(2)合并 Run:

  • 当所有 run 都被找到并排序后,Tim Sort 使用归并排序将这些有序的 run 进行合并。
  • 合并时遵循归并排序的思想&#
11-10 08:22