前言:
当前看官们对“归并算法程序代码”都比较着重,我们都需要剖析一些“归并算法程序代码”的相关知识。那么小编也在网上网罗了一些有关“归并算法程序代码””的相关文章,希望大家能喜欢,看官们一起来学习一下吧!大家好!我是幻化意识流。
今天我们用Python写一个归并排序的代码,文章的最后部分我做了注释说明,欢迎大家一起学习:
# 定义一个函数来合并两个有序的子数组def merge(left, right): # 初始化结果数组和两个指针 result = [] i = 0 j = 0 # 循环遍历两个子数组,比较它们的元素,将较小的元素放入结果数组中 while i < len(left) and j < len(right): if left[i] <= right[j]: result.append(left[i]) i += 1 else: result.append(right[j]) j += 1 # 将剩余的元素也放入结果数组中 result += left[i:] result += right[j:] # 返回结果数组 return result# 定义一个函数来实现归并排序def merge_sort(array): # 如果数组长度小于等于1,直接返回该数组(递归基) if len(array) <= 1: return array # 否则,找到数组的中点,将其分成左右两个子数组(递归步) mid = len(array) // 2 left = array[:mid] right = array[mid:] # 对左右两个子数组分别进行归并排序(递归调用) left_sorted = merge_sort(left) right_sorted = merge_sort(right) # 然后将两个有序的子数组合并成一个有序的数组(调用合并函数) return merge(left_sorted, right_sorted)# 测试代码array = [5, 3, 7, 2, 9, 4, 6]print("Original array:", array)sorted_array = merge_sort(array)print("Sorted array:", sorted_array)
归并排序是一种分治策略的排序算法,它将一个数组分成两个子数组,分别对它们进行排序,然后合并成一个有序的数组。
大家自己动手练习一下,感谢您的阅读,如果您觉得还不错,请免费点个赞支持一下!
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #归并算法程序代码