python 實現(xiàn)歸并排序算法
更新時間:2012年06月05日 23:41:39 作者:
python 實現(xiàn)歸并排序算法代碼,需要的朋友可以參考下
理論不多說:
#!/usr/bin/python
import sys
def merge(array, q, p, r):
left_array = array[q:p+1]
right_array = array[p+1:r+1]
left_array_num = len(left_array)
right_array_num = len(right_array)
i, j , k= [0, 0, q]
while i < left_array_num and j < right_array_num:
if (left_array[i] < right_array[j]):
array[k] = left_array[i]
i+=1
else:
array[k] = right_array[j]
j+=1
k+=1
while i < left_array_num:
array[k] = left_array[i];
k+=1
i+=1
while j < right_array_num:
array[k] = right_array[j]
k+=1
j+=1
def merge_sort(array, q, r):
if q < r:
p = (q + r) / 2
merge_sort(array, q, p)
merge_sort(array, p + 1, r)
merge(array, q, p, r)
if __name__ == "__main__":
array = [2, 45, 5, 7, 34, 456, 345, 89, 8, 1, 341, 4, 98, 67]
merge_sort(array, 0, len(array) - 1)
for a in array:
sys.stdout.write("%d " % a)
復(fù)制代碼 代碼如下:
#!/usr/bin/python
import sys
def merge(array, q, p, r):
left_array = array[q:p+1]
right_array = array[p+1:r+1]
left_array_num = len(left_array)
right_array_num = len(right_array)
i, j , k= [0, 0, q]
while i < left_array_num and j < right_array_num:
if (left_array[i] < right_array[j]):
array[k] = left_array[i]
i+=1
else:
array[k] = right_array[j]
j+=1
k+=1
while i < left_array_num:
array[k] = left_array[i];
k+=1
i+=1
while j < right_array_num:
array[k] = right_array[j]
k+=1
j+=1
def merge_sort(array, q, r):
if q < r:
p = (q + r) / 2
merge_sort(array, q, p)
merge_sort(array, p + 1, r)
merge(array, q, p, r)
if __name__ == "__main__":
array = [2, 45, 5, 7, 34, 456, 345, 89, 8, 1, 341, 4, 98, 67]
merge_sort(array, 0, len(array) - 1)
for a in array:
sys.stdout.write("%d " % a)
相關(guān)文章
Python中的 No Module named ***問題及解決
這篇文章主要介紹了Python中的 No Module named ***問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
利用Python產(chǎn)生加密表和解密表的實現(xiàn)方法
這篇文章主要介紹了利用Python產(chǎn)生加密表和解密表的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Python實現(xiàn)Excel文件的合并(以新冠疫情數(shù)據(jù)為例)
這篇將以新冠疫情數(shù)據(jù)為例,詳細(xì)介紹了如何利用Python實現(xiàn)合并Excel文件,文中的示例代碼講解詳細(xì),感興趣的可以了解一下2022-03-03
一文教會你用Python實現(xiàn)pdf轉(zhuǎn)word
python實現(xiàn)pdf轉(zhuǎn)word,支持中英文轉(zhuǎn)換,轉(zhuǎn)換精度高,可以達(dá)到使用效果,下面這篇文章主要給大家介紹了關(guān)于用Python實現(xiàn)pdf轉(zhuǎn)word的相關(guān)資料,需要的朋友可以參考下2023-01-01
python+selenium 定位到元素,無法點擊的解決方法
今天小編就為大家分享一篇python+selenium 定位到元素,無法點擊的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python利用redis-py實現(xiàn)哈希數(shù)據(jù)類型的常用指令操作
這篇文章我們繼續(xù)學(xué)習(xí) “redis-py” 模塊的一些關(guān)于 “哈希數(shù)據(jù)類型” 的相關(guān)指令用方法,比如利用 pyton 實現(xiàn)操作 “哈希表” 的數(shù)據(jù)、操作 “redis” 的事務(wù)等等2022-09-09

