Python 数据结构与算法——归并排序
来源:互联网 发布:y系列电动机技术数据 编辑:程序博客网 时间:2024/05/16 08:05
排序——归并排序
上文的 Python 实现还是稍显啰嗦,未能充分发挥 Python 语言的优势,以及“Python——一种可执行的伪代码”的论断。本文介绍一种更为简洁的归并排序的实现:
def mergesort(l): m = len(l)//2 lft, rgt = l[:m], l[m:] if len(lft) > 1: lft = mergesort(lft) if len(rgt) > 1: rgt = mergesort(rgt) res = [] while lft and rgt: res.append(lft.pop()) if lft[-1] > rgt[-1] else res.append(rgt.pop()) res.reverse() return (lft or rgt) + res
简单的 if else 双分支都是可以转换为更为简洁的三目运算符的,
while lft and rgt: res.append(lft.pop()) if lft[-1] > rgt[-1] else res.append(rgt.pop())
即是对如下代码的转换:
while lft and rgt: if lft[-1] > rgt[-1]: res.append(lft.pop()) # 无参的 pop() ,从尾部弹出元素 else: res.append(rgt.pop())
更多 Python 三目运算符的用法,请见 Python中的三目运算符
0 0
- Python 数据结构与算法——归并排序
- 数据结构与算法——归并排序
- 【数据结构与算法】——归并排序
- 数据结构与算法——归并排序
- 【数据结构与算法】——归并排序
- python数据结构与算法 34 归并排序
- Python 数据结构与算法 —— 从分治的角度看快速排序、归并排序
- 排序算法—归并排序算法分析与实现(Python)
- 归并排序—数据结构与算法分析第四版
- [数据结构与算法]归并排序
- 数据结构与算法-归并排序
- 数据结构与算法-----归并排序
- 【数据结构与算法】归并排序
- 【数据结构与算法】归并排序
- 用Python 学习数据结构与算法 四、归并排序
- 数据结构——归并排序算法
- 【数据结构与算法之排序】归并排序
- 小白学数据结构——四、排序算法Python(冒泡、选择、快速、插入、希尔、归并排序)
- java总结输入流输出流
- Android Studio系列教程四--Gradle基础
- 设计模式——策略模式
- Android开发Eclipse常用快捷键
- 词语相似度计算:5、训练各种相似度模型(LR,RF,NMF,LDA等)【待续】
- Python 数据结构与算法——归并排序
- JavaScript之链表操作
- 168. Excel Sheet Column Title
- 【bzoj2820】【YY的gcd】【莫比乌斯反演】
- 了解Boilerplate - 学习笔记 一
- 在编译时检查sizeof
- Android Studio快捷键
- Smobiler基于.NET框架开发移动应用内部系统—周报日志等功能(开发日志四)
- android——长期在后台又进app导致的crash