算法基础:分治模式,归并排序ΘΘΘΘΘΘ知识小结
-
1.分治模式在每层递归时都有三个步骤:分解,解决,合并
- 2.归并排序算法完全遵循分治模式:
- 分解:分解待排序的n个元素的序列成各具n/2个元素的两个子序列
- 解决:使用归并排序递归的排序两个子序列
- 合并:合并两个已排序的子序列以产生已排序的答案
- 3.分析分治算法所需要的时间计算:
- 假设T(n)是规模为n的一个问题的运行时间,若问题足够小,如对某个常量c,n≦c,则直接求解需要常量时将,我们将其写作Θ(1).假设吧原问题分解成a个子问题,每个子问题的规模是原问题的1/b(对归并排序,a和b都为2,然而,我们将看到在许多分治算法中a≠b)为了求解一个规模为n/b的子问题,需要T(n/b)的时间,所以需要aT(n/b)的时间n来求解a个子问题,如果分解问题成子问题需要时间D(n),合并子问题的解成原问题的解需要时间C(n) 那么得到递归式:
- T(n)={Θ(1) 若,n≦c
- aT(n/b)+D(n)+C(n) 其他
- 4.归并排序算法
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。