以下是原地
归并排序的
Python 实现:
pythondef merge(arr, lo, mid, hi):i = loj = mid + 1aux = arr.copy()for k in range(lo, hi + 1):if i > mid:arr[k] = aux[j]j += 1elif j > hi:arr[k] = aux[i]i += 1elif aux[j] < aux[i]:arr[k] = aux[j]j += 1else:arr[k] = aux[i]i += 1def sort(arr, lo, hi):if hi <= lo:returnmid = lo + (hi - lo) // 2sort(arr, lo, mid)sort(arr, mid + 1, hi)merge(arr, lo, mid, hi)def merge_sort(arr):sort(arr, 0, len(arr) - 1)return arr
其中,`merge`函数用于将两个有序的子数组合并成一个有序的数组,`sort`函数用于
递归地将数组分成两半并排序,`merge_sort`函数是对外暴露的接口,用于调用`sort`函数并返回排序后的数组。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/13687.html