个性化阅读
专注于IT技术分析

Tim排序算法实现

本文概述

Tim-sort是一种从插入排序和合并排序派生的排序算法。它旨在以最佳方式对不同种类的现实世界数据执行。这是一种自适应排序算法, 需要O(n log n)比较才能对n个元素的数组进行排序。它是由Tim Peters在2002年以python编程语言设计和实现的。自2.3版以来, 它一直是python的标准排序算法。

技术

考虑需要排序的n个元素的数组。在Tim排序中, 数组分为几个部分, 每个部分称为运行。这些运行通过使用插入排序一一进行排序, 然后使用合并功能对已排序的运行进行合并。 Tim排序的思想源于以下事实:插入排序在短列表上比在较大列表上更有效地工作。

Tim排序算法实现

复杂

复杂 最好的情况 平均情况 最差的情况
时间复杂度 O(n) O(n log n) O(n log n)
Space Complexity n

脚步 :

  1. 将数组划分为称为运行的块数。
  2. 考虑运行大小为32或64(在以下实现中, 运行大小为32。)
  3. 使用插入排序将每个运行的单个元素一一排序。
  4. 使用合并排序的合并功能将已排序的运行逐一合并。
  5. 每次迭代后, 合并子数组的大小加倍。
  6. 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 →


赞(0)
未经允许不得转载:srcmini » Tim排序算法实现

评论 抢沙发

评论前必须登录!