Python之堆排序算法实现
来源:互联网 发布:罗浮 荣威 知乎 编辑:程序博客网 时间:2024/05/22 17:31
#!/usr/bin/pythonimport heapq#第一种方法是根据堆排序的原理实现的。def fixdown(a,k,n):#自顶向下堆化 N =n-1; while 2*k<=N: j=2*k; if j<N and a[j]<a[j+1]: j+= 1; if a[k]<a[j]: a[k],a[j]=a[j],a[k]; k=j; else: break;def heapSort1(l): n = len(l)-1; for i in range(n//2,0,-1): fixdown(l,i,len(l)); while n>1: l[1],l[n]=l[n],l[1]; fixdown(l,1,n); n-=1; return l[1:];#第二种方法是python自带的堆排序算法,基于小根堆。def heapSort2(l): l = l[1:]; heapq.heapify(l); heap= []; while l: heap.append(heapq.heappop(l)); l[:]= heap; return l; l=[-1,26,5,77,1,61,11,59,15,48,19];#第一个元素不用,占位res1 = heapSort1(l);res2 = heapSort2(l);print "first result of heapsorting:",(res1);print "second result of heapsorting:",(res2);
运行结果:
0 0
- Python之堆排序算法实现
- 堆排序算法实现 Python
- 排序算法C++ && Python实现---堆排序
- Java实现排序算法之堆排序
- java实现排序算法之堆排序
- 【排序算法】之堆排序的实现
- 排序算法之堆排序java实现
- 排序算法之堆排序 Java 实现
- python 实现堆排序算法代码
- python算法--堆排序详细实现
- python算法实现系列-堆排序
- 算法导论堆排序python实现
- 排序算法—堆排序算法分析与实现(Python)
- 排序算法总结(简单选择排序、堆排序)(python实现)
- 【排序】用Python实现八大排序算法--堆排序
- Python:堆排序算法
- 动手实现 算法 之 “堆排序”
- 堆排序算法之JAVA实现
- 并行编程中的“锁”难题
- log4j.xml配置
- Android Gradle Release Version 2.4 增加多进程并行编译,经测试可以提升编译速度20% 到 40%
- spring data 接口之 JpaRepository,JpaSpecificationExecutor
- android EditText中imeOptions属性设置无效解决方案
- Python之堆排序算法实现
- super和this。
- 谷歌1000类物体识别程序运行
- Spring data 接口之 自定义Repository 接口
- eCAP
- 大学生如何进化到程序猿
- start
- 关于C# this 指针
- VC引入lib库并解决连接错误unresolved external symbol "__declspec(dllimport) const DllClass::`vftable'" (__imp_?