python实现归并排序 --算法导论
2020-06-06 07:47
465 查看
def merge(A, p, q, r): n1 = q - p + 1 n2 = r - q L = list(range(n1 + 1)) R = list(range(n2 + 1)) for i in range(0, n1): L[i] = A[p + i] for j in range(0, n2): R[j] = A[q + j + 1] L[n1] = 10000 #这里可以使用无穷大/也可以使用一个比数组最大的元素大的值 R[n2] = 10000 i = 0 j = 0 for k in range(p, r+1): if L[i] <= R[j]: A[k] = L[i] i = i + 1 else: A[k] = R[j] j = j + 1 def mergesort(A, p, r): if p < r: q = int((p+(r-1))/2) mergesort(A,p,q) mergesort(A,q+1,r) merge(A,p,q,r) return A A = [] n = int(input("请输入你需要排序的数组的长度:")) for i in range(0, n): B = int(input("请依次输入你需要排序的数组元素:")) A.append(B) print(mergesort(A, 0, len(A)-1))
相关文章推荐
- 算法导论快速排序python实现
- 算法导论--不用哨兵实现归并排序
- python实现快速排序 --算法导论
- python 算法 排序实现快速排序
- 白话经典算法系列之五 归并排序的实现
- 直接排序算法python实现
- 堆排序__算法导论实现
- python算法实践7-归并排序
- 白话经典算法系列之五 归并排序的实现
- 快速排序的算法思想及Python版快速排序的实现示例
- 白话经典算法系列之五 归并排序的实现
- 白话经典算法系列之五 归并排序的实现
- 白话经典算法系列之五 归并排序的实现
- 白话经典算法系列之五 归并排序的实现
- 归并排序的算法实现
- python实现基础排序算法之(冒泡排序)
- 白话经典算法系列之五 归并排序的实现
- 白话经典算法系列之五 归并排序的实现
- 白话经典算法系列之五 归并排序的实现
- [Python-算法]python实现冒泡,插入,选择排序