当前位置: 首页 > 后端技术 > Python

python-mergesort

时间:2023-03-26 15:39:17 Python

代码环境:python3.6归并排序采用分治法,思想是:先递归拆分数组,再合并数组。1.拆分数组假设数组一共有n个元素,我们递归地将数组拆分成两半,即n//2,直到每一组只有一个元素。2.合并数组的算法会从最小的数组开始按顺序合并,使得合并后的数组总是有序的,所以合并两个有序数组是合并算法的核心。下面举两个简单的数组例子:第一步:新建一个空数组,用来存放合并的结果,两个辅助指针l和r用来记录两个数组当前的运算位置;step2:将两个小数组中的元素从左到右逐一比较,将较小的元素先放入新数组,指针移位,直到l或r指针超出末尾;step3:指针还没有移动到数组末尾,说明还有剩余元素,将剩余元素合并到新数组的末尾。算法实现defmerge(list_left,list_right):"""输入参数组都是有序的,这里将两个有序的数组合并成一个大的有序数组"""#两个数组的起始下标l,r=0,0new_list=[]whilel