Python版归并排序算法(附Python程序__name__属性用法演示视频)
import random
def mergeSort(seq, reverse=False):
#把原列表分成两部分
mid = len(seq) // 2
left, right = seq[:mid], seq[mid:]
#根据需要进行递归
if len(left) > 1:
left = mergeSort(left)
if len(right) > 1:
right = mergeSort(right)
#现在前后两部分都已排序
#进行合并
temp = []
while left and right:
if left[-1] >= right[-1]:
temp.append(left.pop())
else:
temp.append(right.pop())
temp.reverse()
result = (left or right) + temp
#根据需要进行逆序
if reverse:
result.reverse()
return result
#测试
for i in range(100000):
#生成随机测试数据
reverse = random.choice((True, False))
x = [random.randint(1,100) for i in range(20)]
y = sorted(x, reverse=reverse)
x = mergeSort(x, reverse)
if x!=y:
print('error')
附:Python程序的__name__属性作用与用法演示视频
Python版归并排序算法(附Python程序__name__属性用法演示视频)相关推荐
- Python版插入排序算法
问题描述:在插入排序算法中,把所有元素分为前面的已排序序列和后面的未排序序列两部分,每次处理未排序序列中的第一个元素,将其插入到前面已排序序列中的合适位置,从而不停地扩大已排序序列并缩小未排序序列,直 ...
- Python版快速排序算法
Python版冒泡排序算法请参考Python版冒泡法排序算法 Python版选择排序算法请参考Python版选择排序算法 from random import randint def quickSor ...
- Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]
1.图片演示 2.视频演示 [项目分享]Python基于OpenCV的实时疲劳检测[源码&演示视频&部署教程]_哔哩哔哩_bilibili 3.检测方法 1)方法 与用于计算眨眼的传统 ...
- 用python实现归并排序算法
归并排序是一种常见的排序算法,它采用分治策略,将待排序的序列分成若干个子序列,每个子序列都是有序的,然后再将这些有序的子序列合并成一个有序的序列. 具体来说,归并排序的过程可以描述为以下几步: 将待排 ...
- python:实现丢番图方程算法(附完整源码)
python:实现丢番图方程算法 from __future__ import annotationsdef diophantine(a: int, b: int, c: int) -> tup ...
- Python:实现GrabCut算法(附完整源码)
Python:实现GrabCut算法 img = cv2.imread('data.jpg')img = cv2.resize(img, (224, 224), interpolation=cv2.I ...
- Python:实现sha1算法(附完整源码)
Python:实现sha1算法 import argparse import hashlib # hashlib is only used inside the Test class import s ...
- Python:实现寻峰算法(附完整源码)
Python:实现寻峰算法 import numpy as np import matplotlib.pyplot as plt from scipy.signal import find_peaks ...
- 图解主成分分析PCA算法(附Python实现)
0 写在前面 机器学习强基计划聚焦深度和广度,加深对机器学习模型的理解与应用."深"在详细推导算法模型背后的数学原理:"广"在分析多个机器学习模型:决策树.支持 ...
最新文章
- 写出一个超强的lighttpd模块
- 最特殊的乡村医生,现在要去香港上市敲钟
- hive null 值比较大小
- Linux下安装配置EasyPR中文车牌识别系统
- 模拟撞击_正确看待小行星威胁!NASA模拟8年后300米小行星撞击地球试验
- [python] redis 模块 -- 实现 python 与 Redis 数据库的结合
- docker安装的PHPFPM容器Redis扩展
- 魔力Python--if __name__ == '__main__' 的理解
- 美法院起诉黑客组织成员 为暴雪服务器攻击者
- ​Linux进程管理工具
- Altium Designer 15 PCB图层详解
- java程序设计基础_陈国君版第五版_第四章习题
- 上海地图全图可放大_上海地图下载-上海地图全图高清版大图-地之图下载
- CIS坐标系统与投影变换
- 电脑和微信怎么发邮件到别人邮箱,企业邮箱如何发email给别人
- 1 实验9_7_设计函数int getVowel(char str[],char vowel[]); (100分)
- 网页链接分享到微信里的海报制作
- share_ptr智能指针使用详解
- 如何使用graphpad做柱形图_Graphpad绘制柱形图&散点图
- 显示iPhone可用字体代码
热门文章
- oracle容器部署,Linux docker oracle 部署
- 研华运动控制卡接线图_研华运动控制卡 SoftMotion 技术简介
- workerman mysql git_swoole和workerman哪个更易开发?
- mysql显示表格前五行,深入浅出MySQL勘误表
- Job 存储和持久化 (第三部分)
- 最新android proguard下载
- 基于JAVA+SpringBoot+Mybatis+MYSQL的养老院管理系统
- fs.readfile 显示html,从fs.readFile获取数据
- java 混淆编译_贴一段自动编译java,并混淆编译的代码
- 把javabean复制到另一个javabean 使用BeanUtils.copyProperties(a,b) 复制