[每日一水] 归并排序 Python实现
2021/10/2 22:10:07
本文主要是介绍[每日一水] 归并排序 Python实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
(建议先看后边的伪代码分析,然后自己写出来)
先上代码:
import numpy as np length = 100000 array = np.arange(0, length) np.random.shuffle(array) def merge(array, s1, e1, s2, e2): array_new = array.copy() # 规定从小到大 steps = (e1-s1+1) + (e2-s2+1) start = s1 for i in range(steps): if s1 > e1: array_new[start+i] = array[s2] s2 += 1 continue if s2 > e2: array_new[start+i] = array[s1] s1 += 1 continue if array[s1] >= array[s2]: array_new[start+i] = array[s2] s2 += 1 elif array[s1] < array[s2]: array_new[start+i] = array[s1] s1 += 1 array[start:e2+1] = array_new[start:e2+1] return array_new def mergeSort(array, start, end): # 规定从小到大 if end-start == 1: if array[start] > array[end]: array[start] += array[end] array[end] = array[start] - array[end] array[start] = array[start] - array[end] return array if end == start: return array mid = int((start + end) / 2) mergeSort(array, start, mid) mergeSort(array, mid+1, end) merge(array, start, mid, mid+1, end) print(array) mergeSort(array, 0, length-1) print(array)
俺是非科班出生的菜鸡,一大把年纪了,第一次写归并排序
这篇关于[每日一水] 归并排序 Python实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享