当前位置:网站首页 > 技术博客 > 正文

归并排序算法python

以下是原地

归并排序

Python 实现

 python def merge(arr, lo, mid, hi): i = lo j = mid + 1 aux = arr.copy() for k in range(lo, hi + 1): if i > mid: arr[k] = aux[j] j += 1 elif j > hi: arr[k] = aux[i] i += 1 elif aux[j] < aux[i]: arr[k] = aux[j] j += 1 else: arr[k] = aux[i] i += 1  def sort(arr, lo, hi): if hi <= lo: return mid = lo + (hi - lo) // 2 sort(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`函数并返回排序后的数组。

版权声明


相关文章:

  • webhook作用2024-11-26 12:29:59
  • java抽象类什么意思2024-11-26 12:29:59
  • 苹果备忘录夜间模式2024-11-26 12:29:59
  • string拆成数组2024-11-26 12:29:59
  • spi接口的使用方法2024-11-26 12:29:59
  • java字符串初始化的几种方式2024-11-26 12:29:59
  • c语言函数指针和指针函数2024-11-26 12:29:59
  • 测试流程规范2024-11-26 12:29:59
  • js 数组对象去重2024-11-26 12:29:59
  • 单片机c语言编程实例2024-11-26 12:29:59