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

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

 更新時(shí)間:2012年06月05日 23:43:36   作者:  
python 實(shí)現(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中自定義超時(shí)異常的幾種方法

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

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

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

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

    Python實(shí)現(xiàn)多個(gè)圓和圓中圓的檢測(cè)

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

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

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