Python归并排序
Python归并排序是一种分治算法,它将一个数组(或者链表)分成了两个子数组,对子数组进行排序,将排序好的子数组合并起来,得到最终的排序结果。
使用方法
def merge_sort(arr): # 如果数组长度小于2,则直接返回 if len(arr) < 2: return arr # 计算分割点 mid = len(arr) // 2 # 对左右两个子数组进行排序 left = merge_sort(arr[:mid]) right = merge_sort(arr[mid:]) # 合并两个有序数组 return merge(left, right) # 合并两个有序数组 def merge(left, right): result = [] # 双指针法,从两个数组的头部开始比较 i = 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
以上是Python归并排序的使用方法,它的运行时间复杂度为O(nlogn),是一种高效的排序算法,可以用来对数组进行归并排序。