美文网首页程序员iOS进阶指南iOS开发
Insertion Sort和Merge Sort的效率问题

Insertion Sort和Merge Sort的效率问题

作者: KenZhangCn | 来源:发表于2016-05-01 21:36 被阅读232次

    排序的方法有很多种,今天来写一下Insertion Sort和Merge Sort的效率问题。


    要讨论两种排序法的效率问题,首先我们得先假定有一部计算机,这台计算机做一些基本操作(+ - * / % & | ! ...)的时间是固定的。为了比较两者的效率我们还必须再假定排序时间最长。

    1. n个数的插入排序的总时间即是把每一个数排序的时间加起来,而每一个数都和前面的数进行对比。
      T(n) = C1∑tj = C1 * (1+2+3+ ... + n-1) ≈ C1n2/2
      T(n) : n个数进行插入排序的总时间
      ∑tj :第j个数进行排序的总时间

    2. n个数的归并排序中每一层的对比次数是n,一共有log2n层。
      T(n) = C2nlog2n
      T(n) : n个数进行归并排序的总时间

    由上可知,在大量数据的情况下,归并排序的效率会优于插入排序。


    由于笔者知识有限,如有错误,欢迎指出。

    相关文章

      网友评论

        本文标题:Insertion Sort和Merge Sort的效率问题

        本文链接:https://www.haomeiwen.com/subject/qydkrttx.html