python 三行代码实现快速排序
2017-09-06 10:02
543 查看
python 三行代码实现快速排序
最近在看 python cookbook , 里面的例子很精彩,这里就帮过来,做个备忘录主要利用了行数的递归调用和Python的切片特性,解释一下每行代码的含义:
第1行: #coding:utf-8 指定utf-8 编码
第2行:定义函数名和参数
第3行: 判断列表长度是否小于等于1, 如果小于等于1,直接返回列表
第4行:返回递归函数拼接的列表,[lt for lt in L[1:] if lt <= L[0]] 列表推导表达式,返回一个比 L[0] 小的列表,[ge for ge in L[1:] if ge >= L[0]], 返回一个比L[0] 大的列表, 再加上L[0] 就构成完整的列表
第四行是最关键的,返回三个部分:
比列表第一个元素小的所有元素列表递归调用
第一个元素
比列表第一个元素大的所有元素列表递归调用
递归调用部分,处理过程都是一样的,用列表第一个参数作为中间值,把列表分为两部分
最后两行是测试代码,生成一个无序列表,打印排序结果。
#coding:utf-8 def qsort(L): if len(L) <= 1: return L return qsort([lt for lt in L[1:] if lt < L[0]]) + L[0:1]+ \ qsort([ge for ge in L[1:] if ge >= L[0]]) iList = [3,14,2,12,9,33,99,35] print qsort(iList)
相关文章推荐
- 三行代码实现快速排序
- 百练OJ:4003:十六进制转十进制(python三行代码实现)
- 快速排序和归并排序Python3代码实现
- python三行代码实现数据库创表字段的大小写转换
- 三行代码实现快速排序
- 用简单的Python代码实现快速排序
- python超精简代码实现快速排序
- 利用Python yagmail三行代码实现发送邮件
- 基于python实现jenkins自动发布代码平台
- Python与C++ 遍历文件夹下的所有图片实现代码
- 手把手教你用1行Python代码实现FTP服务器 -- Pyftpdlib
- python一行代码实现人脸识别
- Python机器学习之XGBoost从入门到实战(代码实现)
- 我的第一篇CSDN博客文章,Python代码实现矩阵翻转
- python实现log日志的示例代码
- python实现人脸识别代码
- python翻译软件实现代码(使用google api完成)
- 对筛法求素数的实现代码(Python及C++)
- 研磨设计模式解析及python代码实现——(三)适配器模式(Adapter)
- 使用python实现细菌繁殖的算法代码,欢迎拍砖讨论!