[每日一水] 归并排序 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-12-24Python编程入门指南
- 2024-12-24Python编程基础入门
- 2024-12-24Python编程基础:变量与数据类型
- 2024-12-23使用python部署一个usdt合约,部署自己的usdt稳定币
- 2024-12-20Python编程入门指南
- 2024-12-20Python编程基础与进阶
- 2024-12-19Python基础编程教程
- 2024-12-19python 文件的后缀名是什么 怎么运行一个python文件?-icode9专业技术文章分享
- 2024-12-19使用python 把docx转为pdf文件有哪些方法?-icode9专业技术文章分享
- 2024-12-19python怎么更换换pip的源镜像?-icode9专业技术文章分享