欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python 實現(xiàn)堆排序算法代碼

 更新時間:2012年06月05日 23:43:36   作者:  
python 實現(xiàn)堆排序算法代碼,需要的朋友可以參考下
復(fù)制代碼 代碼如下:

#!/usr/bin/python
import sys

def left_child(node):
return node * 2 + 1

def right_child(node):
return node * 2 + 2

def parent(node):
if (node % 2):
return (i - 1) / 2
else:
return (i - 2) / 2

def max_heapify(array, i, heap_size):
l = left_child(i)
r = right_child(i)

largest = i
if l < heap_size and array[l] > array[i]:
largest = l

if r < heap_size and array[r] > array[largest]:
largest = r

if largest != i:
array[i], array[largest] = array[largest], array[i]
max_heapify(array, largest, heap_size)

def build_max_heap(array):
for i in range(len(array) / 2, -1, -1):
max_heapify(array, i, len(array))


def heap_sort(array):
build_max_heap(array)
for i in range(len(array) - 1, 0, -1):
array[0], array[i] = array[i], array[0]
max_heapify(array, 0, i)


if __name__ == "__main__":
array = [0, 2, 6, 98, 34, -5, 23, 11, 89, 100, 7]
heap_sort(array)

for a in array:
sys.stdout.write("%d " % a)

相關(guān)文章

  • 詳解python中自定義超時異常的幾種方法

    詳解python中自定義超時異常的幾種方法

    這篇文章主要介紹了詳解python中自定義超時異常的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 深入理解Python虛擬機中的反序列化pyc文件

    深入理解Python虛擬機中的反序列化pyc文件

    再這篇文章中我們將主要對?Code?Object?進行分析,并且詳細它是如何被反序列化的,通過本篇文章我們將能夠把握整個?pyc?文件結(jié)構(gòu),感興趣的可以了解一下
    2023-05-05
  • Python實現(xiàn)多個圓和圓中圓的檢測

    Python實現(xiàn)多個圓和圓中圓的檢測

    這篇文章主要為大家詳細介紹了Python如何實現(xiàn)多個圓檢測和圓中圓的檢測,文中的實現(xiàn)方法講解詳細,具有一定的借鑒價值,需要的可以參考一下
    2022-11-11
  • Python如何定義有默認參數(shù)的函數(shù)

    Python如何定義有默認參數(shù)的函數(shù)

    這篇文章主要介紹了Python如何定義有默認參數(shù)的函數(shù),幫助大家更好的理解和學習Python,感興趣的朋友可以了解下
    2020-08-08
  • 最新評論