本文概述
- 技术
- 复杂
技术 考虑需要排序的n个元素的数组。在Tim排序中, 数组分为几个部分, 每个部分称为运行。这些运行通过使用插入排序一一进行排序, 然后使用合并功能对已排序的运行进行合并。 Tim排序的思想源于以下事实:插入排序在短列表上比在较大列表上更有效地工作。
文章图片
复杂
复杂 | 最好的情况 | 平均情况 | 最差的情况 |
---|---|---|---|
时间复杂度 | O(n) | O(n log n) | O(n log n) |
Space Complexity | n |
- 将数组划分为称为运行的块数。
- 考虑运行大小为32或64(在以下实现中, 运行大小为32。)
- 使用插入排序将每个运行的单个元素一一排序。
- 使用合并排序的合并功能将已排序的运行逐一合并。
- 每次迭代后, 合并子数组的大小加倍。 C program
【Tim排序算法实现】Output:
Printing Array elements 121202312354332Printing sorted array elements 123122054123332
Next Topic
← prev next →