算法:快速排序
2015-08-29 23:31
225 查看
# coding:utf-8 import random import time t = time.time() # 快速排序的分割算法, 参考自编程珠玑 # [l, r]为闭区间 def partion(a, l, r): # tmp = a[0] if l >= r: return m = l #for i in range(1, len(a)): for i in range(l + 1, r + 1): if a[i] < a[l]: m += 1 a[m], a[i] = a[i], a[m] a[l], a[m] = a[m], a[l] partion(a, l, m - 1) partion(a, m + 1, r) return m #def qsort(): if __name__ == "__main__": N = 100000 a = [random.randint(1,100000) for i in range(N)] partion(a, 0, N - 1) print a b = a[:]; a.sort() print b == a print time.time() - t
快速排序的Python实现
参考文献:编程珠玑
相关文章推荐
- ajax上传文件以及进度事件
- [c] poj1012 约瑟夫环
- JSP 上传图片war包导致的路径找不到
- java设计模式-观察者模式
- 电影推荐
- 如何搭建自定义php环境
- Java小知识点
- 好玩的-记最近玩的几个经典ipad ios游戏
- ubuntu下安装mysql的简单方法
- Android Application对象必须掌握的七点
- Javascript高级程序设计——基本概念(二)
- js生成随机编号
- BZOJ 题目1588: [HNOI2002]营业额统计(Splay Tree 求前驱后继)
- [算法] 背包问题
- leetcode_019Remove Nth Node From End of List
- HTTP报文结构图解
- [一个结构] 堆的实现
- php去除字符串中指定字符
- 关于线程的理解
- cocos2dx的渲染机制