二分归并排序算法代码怎么写
2025-04-30 20:59:08问答浏览:4658次
最新回答:可以通过以下方法解决问题:
我要提问
登录后回复
共 2 个回答
-
二分归并排序(也称为归并排序)是一种高效的排序算法,采用分治策略。下面是使用 Python 编写的归并排序的简单代码:
python def merge_sort(arr): if len(arr) <= 1: return arr 分割数组 mid = len(arr) // 2 left_half = arr[:mid] right_half = arr[mid:] 递归排序两半部分 left_sorted = merge_sort(left_half) right_sorted = merge_sort(right_half) 合并两个排序好的子数组 return merge(left_sorted, right_sorted)
def merge(left, right): sorted_arr = [] left_index, right_index = 0, 0 比较两个子数组并合并 while left_index < len(left) and right_index < len(right): if left[left_index] < right[right_index]: sorted_arr.append(left[left_index]) left_index += 1 else: sorted_arr.append(right[right_index]) right_index += 1 如果 left 或 right 还有剩余元素,则添加到结果数组 sorted_arr.extend(left[left_index:]) sorted_arr.extend(right[right_index:]) return sorted_arr
示例 arr = [34, 7, 23, 32, 5, 62] sorted_arr = merge_sort(arr) print(sorted_arr)
这段代码首先定义了一个 merge_sort 函数,用于递归地将数组分成两半,直到每个部分只有一个元素,然后通过 merge 函数合并这些有序的部分。merge 函数用于合并两个已排序的子数组。
你可以根据自己的需要修改和扩展这段代码。希望能帮到你!赞11回复举报
我也是有底线的人~
点击加载更多
相关资讯
更多热门新闻
-
由他
2003位用户围观了该问题 -
肖肖
474位用户围观了该问题 -
那一抹蓝
465位用户围观了该问题