龙空技术网

用Python写一个归并排序代码含注释说明。

幻化意识流 52

前言:

当前看官们对“归并算法程序代码”都比较着重,我们都需要剖析一些“归并算法程序代码”的相关知识。那么小编也在网上网罗了一些有关“归并算法程序代码””的相关文章,希望大家能喜欢,看官们一起来学习一下吧!

大家好我是幻化意识流

今天我们用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)

归并排序是一种分治策略的排序算法,它将一个数组分成两个子数组,分别对它们进行排序,然后合并成一个有序的数组。

大家自己动手练习一下,感谢您的阅读,如果您觉得还不错,请免费点个赞支持一下!

标签: #归并算法程序代码