本文概述
Tim-sort是一种从插入排序和合并排序派生的排序算法。它旨在以最佳方式对不同种类的现实世界数据执行。这是一种自适应排序算法, 需要O(n log n)比较才能对n个元素的数组进行排序。它是由Tim Peters在2002年以python编程语言设计和实现的。自2.3版以来, 它一直是python的标准排序算法。
技术
考虑需要排序的n个元素的数组。在Tim排序中, 数组分为几个部分, 每个部分称为运行。这些运行通过使用插入排序一一进行排序, 然后使用合并功能对已排序的运行进行合并。 Tim排序的思想源于以下事实:插入排序在短列表上比在较大列表上更有效地工作。
复杂
复杂 | 最好的情况 | 平均情况 | 最差的情况 |
---|---|---|---|
时间复杂度 | O(n) | O(n log n) | O(n log n) |
Space Complexity | n |
脚步 :
- 将数组划分为称为运行的块数。
- 考虑运行大小为32或64(在以下实现中, 运行大小为32。)
- 使用插入排序将每个运行的单个元素一一排序。
- 使用合并排序的合并功能将已排序的运行逐一合并。
- 每次迭代后, 合并子数组的大小加倍。
C program
Output:
Printing Array elements 12 1 20 2 3 123 54 332 Printing sorted array elements 1 2 3 12 20 54 123 332
Next Topic
← prev next →
评论前必须登录!
注册