新聞中心
原理分析

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


咨詢
建站咨詢
