合并排序算法实现
时间复杂度: O(nlog2n)
将递归调用模拟成递归树进行时间复杂度的计算
合并排序分三步:第一步将整体分为两部分,递归左叶子,第二步递归右叶子,
第三步合并左右叶子
其中,假设第N层叶子为j层,根节点为第一层
则共有log2n + 1层
对于模拟的递归树,第j层有2的j次方个子程序,每个子程序有n/2的j次方个参数
每个递归叶子也即第三部通过计算,其复杂度为6n
这样,只需要算每个递归层的复杂度,然后乘以层数,即是总的复杂度
合并排序算法实现
时间复杂度: O(nlog2n)
将递归调用模拟成递归树进行时间复杂度的计算
合并排序分三步:第一步将整体分为两部分,递归左叶子,第二步递归右叶子,
第三步合并左右叶子
其中,假设第N层叶子为j层,根节点为第一层
则共有log2n + 1层
对于模拟的递归树,第j层有2的j次方个子程序,每个子程序有n/2的j次方个参数
每个递归叶子也即第三部通过计算,其复杂度为6n
这样,只需要算每个递归层的复杂度,然后乘以层数,即是总的复杂度