归并排序(Merge Sort)是一种分治算法,它将一个序列(list)分为两个子序列(sub-lists),对子序列进行排序,将排序好的子序列合并成一个有序序列。
归并排序算法的实现方法分为两步:
def merge_sort(arr): if len(arr) <= 1: 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, 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
归并排序算法的时间复杂度是O(nlogn),空间复杂度是O(n),是一种较高效的排序算法。但是,它的空间复杂度较高,不适合大规模数据的排序。
本文链接:http://task.lmcjl.com/news/12061.html