python实现堆排序
2017-10-18 15:40
309 查看
#!/usr/bin/env python # -*- coding: utf-8 -*- def heap_sort(arr): l = len(arr) for i in xrange(l/2, -1, -1): form_heap(arr, i, l-1) for i in xrange(l-1, 0, -1): arr[i],arr[0] = arr[0],arr[i] form_heap(arr, 0, i-1) return def form_heap(arr, start, end): while(start < end): tmp = start * 2 if tmp > end: break if tmp +1 <= end and arr[tmp + 1] > arr[tmp]: tmp = tmp + 1 if arr[tmp] > arr[start]: arr[tmp],arr[start] = arr[start], arr[tmp] start = tmp heap_sort(arr) #form_heap(arr, 3,len(arr) -1) print arr
相关文章推荐
- Python实现堆排序的方法详解
- Python 快速排序 堆排序——Python实现一些算法持续更新
- 排序算法C++ && Python实现---堆排序
- 堆排序PYTHON实现
- 数据结构--堆排序及Python实现
- 堆排序python实现
- 算法 排序 python 实现--堆排序
- 排序算法(四)堆排序的Python实现及算法详解
- 用调整法和插入法建堆的Python实现,不同建堆方式对堆排序性能的影响
- 用Python实现八大排序算法--堆排序
- 排序算法总结(简单选择排序、堆排序)(python实现)
- python算法--堆排序详细实现
- Python实现堆排序的方法详解
- 快速排序、堆排序、归并排序的python实现
- 用python实现堆排序
- python实现堆排序
- 排序算法集合(1)-Python实现的堆排序
- 堆排序学习笔记及堆排序算法的python实现
- 快速排序,归并排序,堆排序python实现
- 利用Python实现堆排序