实验报告
课程名称 《算法分析与设计》
实验日期 2021年 3月29日
实验名称 二分归并排序
1.问题
[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)]
二分归并排序:对n个不同的数构成的数组A[1…n]进行排序,其中n=2^k
将n(n=2^k)个不同的数字组成的数组进行二分归并排序.
2.解析
[问题的理解和推导,可用电子版直接在此编写,也可用纸笔推导,拍照嵌入本文档]
二分归并排序体现了分治思想,其内容分为两步,先进行二分操作,对于二分结果进行归并排序,从而实现二分归并排序。主要通过使得所有的子序列有序而让最终结果有序
例如当数组为a[10]={2,5,8,7,4,6,9,1,3,0}
3.设计
[核心伪代码]
定义l为左断点,r为右端点
取左端点和右端点之间的中间值mid
递归左区间
递归右区间
递归当前区间
合并序列
4.分析
[算法复杂度推导]
归并排序时间复杂度O(nlogn)