堆排序PYTHON实现
2014-06-03 15:54
302 查看
class arr(list): pass a=arr([3,5,1,2,9,3,0,7,5,6,3,2]) def left(i):return ((i+1)<<1)-1 def right(i):return (i+1)<<1 def p(i):return (i-1)>>1 def heapfy(r,i): t=left(i) s=right(i) if t<r.hs and r[i]<r[t]: large=t else: large=i if s<r.hs and r[large]<r[s]: large=s if large!=i: r[large],r[i]=r[i],r[large] heapfy(r,large) def build(r): r.hs=len(r) for i in range(len(r)>>1,-1,-1): heapfy(r,i) def heapsort(r): build(r) while r.hs>0: r[0],r[r.hs-1]=r[r.hs-1],r[0] r.hs-=1 heapfy(r,0) heapsort(a) print(a)
相关文章推荐
- python算法--堆排序详细实现
- Python实现 [堆] [堆排序]
- 快速排序,归并排序,堆排序python实现
- Python实现二叉树存储结构的堆排序
- Python 实现堆排序
- 排序算法集合(1)-Python实现的堆排序
- 排序算法三:堆排序基本原理以及Python实现
- Python实现堆排序的方法详解
- Python实现堆排序的方法详解
- 排序算法C++ && Python实现---堆排序
- python算法实现系列-堆排序
- 算法导论堆排序python实现
- Python 快速排序 堆排序——Python实现一些算法持续更新
- 利用Python实现堆排序
- python实现堆排序
- heapsort堆排序(3种语言实现 c/java/python)
- 快速排序,归并排序,堆排序python实现
- 堆排序学习笔记及堆排序算法的python实现
- 用Python实现八大排序算法--堆排序
- 八大排序算法的python实现(五)堆排序