python堆排序
来源:互联网 发布:文网文添加域名 编辑:程序博客网 时间:2024/06/05 13:56
#coding:utf-8#沿左,右子节点较大者依次往下调整def heapify( array, i, n ):#把某个结点下的所有子树更新成大顶堆 j = i * 2 + 1 while j < n: if j + 1 < n and array[j] < array[j + 1]:#左孩子和右孩子中取最大 j += 1 if array[i] > array[j]: break array[i], array[j] = array[j], array[i] i = j j = i * 2 + 1 #创建堆def build_heap( array ): size = len( array ) for i in range( size // 2 - 1, -1, -1 ):#遍历非叶结点 heapify( array, i, size ) #大顶堆排序def heap_sort( array ): size = len( array ) build_heap( array ) #交换堆顶与最后一个结点,再调整堆 for i in range( size - 1, 0, -1 ): array[0], array[i] = array[i], array[0] heapify( array, 0, i ) a = [ -3, 1, 3, 0, 9, 7 ]heap_sort( a )print( a )
0 0
- Python实现 [堆] [堆排序]
- 堆排序PYTHON实现
- Python 堆排序
- 堆排序 python
- Python实现堆排序
- 堆排序python实现
- Python实现堆排序
- python实现堆排序
- Python堆排序
- python堆排序
- python 实现堆排序
- 堆排序python实现
- Python 实现堆排序
- python堆排序
- Python:堆排序算法
- python--堆排序
- 堆排序(Python)
- Python笔记:二叉堆及堆排序
- 数据结构实验之栈四:括号匹配
- Vue.js——60分钟browserify项目模板快速入门【7】
- GraphicsLab Project之Color Processing
- ArrayAdapter,SimpleAdapter的基本使用
- Sicily 1001.Alphacode | 动态规划
- python堆排序
- 暑期社会实践心得
- java字符串分解 StringTokenizer用法
- java各大排序算法总结
- Vue.js——60分钟webpack项目模板快速入门【8】
- 二叉树的非递归遍历
- 《自控力》阅读笔记二
- Vue.js——vue-router 60分钟快速入门【9】
- openId导致的微信中“下单账号和支付账号不一致”原因及解决办法