有如上数组A=[3, 4, 1, 6, 7, 2, 5,9],需要实现排序,解决以上问题,归并排序算法解决思路步骤如下:
步骤一:将以上数组A,分割成两个或者多个数组,
步骤二:在分割后的数组中采用排序算法,使分割后的两个或者多个数组分别形成有序数组,
步骤三:逐一比较两个或者多个有序数组中元素,比较一组有序数组中元素算作一个操作,如果是分割两组有序数组需要进行n个操作(n为A中元素个数),如果是分割成三个有序数组则需要进行2n个操作
以分割成2组为例,则采用归并排序算法复杂度可以形成以下表达式
T(n) = T(n/2)+T(n/2) +n
主定理(Master Theoerm)介绍
解读:有公式,
情况一,如果 则T(n)的时间复杂度为
情况二,如果 则T(n)的时间复杂度为,通过f(n)进行计算得出k值
情况三,如果 <f(n)则T(n)的时间复杂度为
使用上述公式计算如下式子得出时间复杂度
如题得出 a = 2 b = 2 (n) = n
符合情况二,,由此得出k=0
所以