新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python歸并排序的基本思路
基本思路

襄陽ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!
歸納排序是采用分治法的非常典型的應(yīng)用。
1、先歸還分解組,然后合并組?;緲?gòu)想是將數(shù)組分解到最小,然后合并兩個(gè)有序數(shù)組。
2、基本構(gòu)想是比較兩個(gè)數(shù)組的最前面的數(shù)量,誰小就先取誰,取后取相應(yīng)的指針后移。
然后進(jìn)行比較,直到一個(gè)組是空的,最后復(fù)制另一個(gè)組的剩馀部分即可。
實(shí)例
# 歸并排序 def merge_sort(alist): '''歸并排序''' n = len(alist) if n <= 1: return alist else: mid = n // 2 # left 表示采用歸并排序后形成的有序的新的列表 left_li = merge_sort(alist[:mid]) # right 表示采用歸并排序后形成的有序的新的列表 right_li = merge_sort(alist[mid:]) # 將兩個(gè)有序的子序列合并成一個(gè)新的整體 # merge(left,right) left_pointer,right_pointer = 0,0 result = [] while left_pointer < len(left_li) and right_pointer < len(right_li): if left_li[left_pointer] <= right_li[right_pointer]: result.append(left_li[left_pointer]) left_pointer += 1 else: result.append(right_li[right_pointer]) right_pointer += 1 result += left_li[left_pointer:] result += right_li[right_pointer:] return result if __name__ == '__main__': alist = [54, 26, 93, 17, 77, 31, 44, 55, 20] print(alist) sorted_alist = merge_sort(alist) print(sorted_alist)
以上就是python歸并排序的基本思路,希望對(duì)大家有所幫助。更多Python學(xué)習(xí)指路:創(chuàng)新互聯(lián)Python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
本文題目:創(chuàng)新互聯(lián)Python教程:python歸并排序的基本思路
鏈接地址:http://fisionsoft.com.cn/article/djispos.html


咨詢
建站咨詢
