python实现堆排序
来源:互联网 发布:淘宝如何不打电话注册 编辑:程序博客网 时间:2024/06/02 05:15
实现代码如下:
# -*- coding=utf-8 -*-def MaxHeapify(li, i): '''本函数的功能是在数组li中,使下标为i对应的值遵循最大堆的性质 即它的子女必须小于等于它,以此类推,直到这个值满足条件或者它在 叶子节点上''' l = 2 * i +1 r = 2 * i +2 largest = i if l < len(li) and li[l] > li[i]: largest = l if r < len(li) and li[r] > li[largest]: largest = r if largest != i: li[i], li[largest] = li[largest], li[i] MaxHeapify(li, largest)def BuildMaxHeap(li): '''本函数的功能是使数组li对应的堆变为最大堆''' i = len(li)/2 - 1 while i >= 0: MaxHeapify(li, i) i -= 1def HeapSort(li): '''本函数的功能是实现堆排序''' BuildMaxHeap(li) print li,'\n----------------------------------' i = len(li) - 1 while i >= 1: li[i],li[0] = li[0],li[i] tmp = li[:i] MaxHeapify(tmp,0) li[:i] = tmp print li i -= 1if __name__ == '__main__': li = [5,14,2,25,7,17,20,8,4] HeapSort(li) print li
0 0
- Python实现 [堆] [堆排序]
- 堆排序PYTHON实现
- Python实现堆排序
- 堆排序python实现
- Python实现堆排序
- python实现堆排序
- python 实现堆排序
- 堆排序python实现
- Python 实现堆排序
- 利用Python实现堆排序
- 堆排序的python实现
- 堆排序及python实现
- 堆排序python语言实现
- 堆排序算法实现 Python
- 排序算法C++ && Python实现---堆排序
- python 实现堆排序算法代码
- python算法--堆排序详细实现
- python算法实现系列-堆排序
- Linux进程管理
- 在python下安装这个第三方库numpy、scipy、matplotlib
- Qt5.5.1调试时,程序没有在断点处停止
- SpringMVC——Controller接口
- 总结 №2
- python实现堆排序
- 在树莓派上搭建LAMP服务
- Leetcode230: Power of Three
- 【SAP增强】增强
- Linux源码包管理
- 赫夫曼树的创建
- 单选菜单
- 【MYSQL】修改密码
- 互联网协议