程序员iOS进阶指南iOS开发

Insertion Sort和Merge Sort的效率问题

2016-05-01  本文已影响232人  KenZhangCn

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

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


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

上一篇下一篇

猜你喜欢

热点阅读