算法思想:
归并算法采用分治策略:将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些问题,然后再合并其结果,就得到原问题的解。
分解:将n个元素分成各含n/2个元素的子序列;
解决:用归并排序法对两个子序列递归地排序;
合并:合并两个已排序好的子序列以得到排序结果。
在对子序列排序时,其长度为1时递归结束。单个元素视为是已排好序的。
算法代码:
运行结果:
算法复杂度:O(n*lgn)
算法思想:
归并算法采用分治策略:将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些问题,然后再合并其结果,就得到原问题的解。
分解:将n个元素分成各含n/2个元素的子序列;
解决:用归并排序法对两个子序列递归地排序;
合并:合并两个已排序好的子序列以得到排序结果。
在对子序列排序时,其长度为1时递归结束。单个元素视为是已排好序的。
算法代码:
运行结果:
算法复杂度:O(n*lgn)