Insertion Sort和Merge Sort的效率问题

排序的方法有很多种,今天来写一下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个数进行归并排序的总时间

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


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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的...
    Luc_阅读 2,320评论 0 35
  • 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    蚁前阅读 5,237评论 0 52
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,753评论 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 将一个记录插入到已排序好...
    依依玖玥阅读 1,288评论 0 2
  • Chapter 2 插入排序 线性查找 选择算法 归并排序算法 二分查找算法 冒泡排序 插入排序 循环不...
    只是无情绪阅读 1,495评论 0 1