新聞中心
這里有您想知道的互聯網營銷解決方案
創(chuàng)新互聯Python教程:python歸并排序的實現原理
原理分析

成都創(chuàng)新互聯一直通過網站建設和網站營銷幫助企業(yè)獲得更多客戶資源。 以"深度挖掘,量身打造,注重實效"的一站式服務,以網站制作、成都網站制作、移動互聯產品、營銷型網站服務為核心業(yè)務。10多年網站制作的經驗,使用新網站建設技術,全新開發(fā)出的標準網站,不但價格便宜而且實用、靈活,特別適合中小公司網站制作。網站管理系統(tǒng)簡單易用,維護方便,您可以完全操作網站資料,是中小公司快速網站建設的選擇。
1、把一個序列從中間位置分成兩個序列;
2、把這兩個子序列按第一步繼續(xù)分成兩部分;
3、直到所有子序列的長度都是1,也就是說,不能再有二分截止。此時再兩兩合并成一個有序的序列。
實例
def merge(arr, low, mid, high): # low 和 high 為整個數組的第一個和最后一個位置索引,mid 為中間位置索引 # i 和 j 為指針,最初位置分別為兩個有序序列的起始位置 # ltmp 用來存放合并后的序列 i = low j = mid+1 ltmp = [] while i <= mid and j <= high: # 只要左右兩邊都有數 if arr[i] < arr[j]: # 當左邊的數小于右邊的數 ltmp.append(arr[i]) # 將左邊的數存入 ltmp i += 1 # 左邊的指針往右移一位 else: # 當右邊的數小于左邊的數 ltmp.append(arr[j]) # 將右邊的數存入 ltmp j += 1 # 右邊的指針往右移一位 # 上面的 while 語句執(zhí)行完后,左邊或者右邊沒有數了 while i <= mid: # 當左邊還有數的時候 ltmp.append(arr[i]) # 將左邊剩下的數全部存入 ltmp i += 1 while j <= high: # 當右邊還有數的時候 ltmp.append(arr[j]) # 將右邊剩下的數全部存入 ltmp j += 1 arr[low:high+1] = ltmp # 將排序后的數組寫回原數組 def merge_sort(arr, low, high): # low 和 high 為整個數組的第一個和最后一個位置索引 if low < high: # 至少有兩個元素 mid = (low + high) // 2 merge_sort(arr, low, mid) # 把左邊遞歸分解 merge_sort(arr, mid+1, high) # 把右邊遞歸分解 merge(arr, low, mid, high) # 做歸并
以上就是python歸并排序的實現原理,希望對大家有所幫助。更多Python學習指路:創(chuàng)新互聯Python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
當前名稱:創(chuàng)新互聯Python教程:python歸并排序的實現原理
地址分享:http://m.fisionsoft.com.cn/article/dhpoccp.html


咨詢
建站咨詢
