"""
Author: OhiyoX
Date: 2020-02-03
"""
def swap(tree, i, j):
temp=tree[i]
tree[i] = tree[j]
tree[j] = temp
def heapify(tree, n, i):
"""
To heapify the single heap
n indicates how many nodes, i is location
"""
if i >= n:
return
c1 = 2 * i + 1 # left node
c2 = 2 * i + 2 # right node
max = i
if c1 < n and tree[c1] > tree[i]:
max = c1
if c2 < n and tree[c2] > tree[max]:
max = c2
if max != i:
swap(tree, max, i)
def build_heap(tree, n):
"""build heap"""
last_node = n-1 # last node
parent = (last_node - 1) // 2 # last node's parent node
for i in range(parent, -1, -1):
heapify(tree, n, i)
def heap_sort(tree, n):
build_heap(tree, n)
for i in range(n-1, -1, -1):
swap(tree, i, 0)
build_heap(tree, i)
"""main"""
tree = [10, 6, 3, 2, 0, 4, 1, 7, 5, 8, 9]
n = len(tree)
heap_sort(tree, n)
show = ''
for i in range(n):
show = show + str(tree[i]) + " "
print(show)
Python 堆排序
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
- 文/潘曉璐 我一進店門度硝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肿轨,“玉大人,你說我怎么就攤上這事蕊程〗放郏” “怎么了?”我有些...
- 正文 為了忘掉前任纽窟,我火速辦了婚禮肖油,結果婚禮上,老公的妹妹穿的比我還像新娘臂港。我一直安慰自己森枪,他們只是感情好,可當我...
- 文/花漫 我一把揭開白布审孽。 她就那樣靜靜地躺著县袱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪佑力。 梳的紋絲不亂的頭發(fā)上式散,一...
- 文/蒼蘭香墨 我猛地睜開眼透且,長吁一口氣:“原來是場噩夢啊……” “哼撕蔼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
- 正文 年R本政府宣布憎亚,位于F島的核電站,受9級特大地震影響弄慰,放射性物質發(fā)生泄漏第美。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一陆爽、第九天 我趴在偏房一處隱蔽的房頂上張望什往。 院中可真熱鬧,春花似錦慌闭、人聲如沸别威。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽省古。三九已至,卻和暖如春丧失,著一層夾襖步出監(jiān)牢的瞬間豺妓,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 最近在復習經典排序算法,自己用python也實現了一下奄抽,這里不會涉及到原理(因為網上方法已經很詳細啦)蔼两,就把函數貼...
- 簡介 堆是一種完全二叉樹,有最大堆和最小堆兩種逞度。 最大堆: 每個節(jié)點额划,都比葉子節(jié)點大,如: 最小堆:和最大堆相反 ...
- 堆排序 堆排序是利用堆這種數據結構而設計的一種排序算法档泽,堆排序是一種選擇排序俊戳,它的最壞、最好馆匿、平均時間復雜度均為O...
- ubuntu 中安裝網易云音樂 安裝包的下載安裝包下載地址(特別注意一點抑胎,所選擇的安裝包) 安裝過程1.按Ctrl...