您好,登錄后才能下訂單哦!
本篇內容主要講解“python歸并排序實例分析”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“python歸并排序實例分析”吧!
說明
1、歸并排序是一種高效、穩定的合并運算排序算法,它是采用分治方法的典型應用。
2、基本思想大致為:首先通過遞歸的方式將給定的數組二分為二分,再按大小比較進行兩次大小比較排序,最后逐級合并完成總體的排序。
歸并排序更有效,它設置了n個列長,將數列分成小數列,需要logn步驟,每個步驟都是一個合并有序數列的過程,時間復雜性為O(nlogn),即O(n)。
實例
import random def ConfiationAlgorithm(str): if len(str) <= 1: #子序列 return str mid = (len(str) / 2) left = ConfiationAlgorithm(str[:mid])#遞歸的切片操作 right = ConfiationAlgorithm(str[mid:len(str)]) result = [] #i,j = 0,0 while len(left) > 0 and len(right) > 0: if (left[0] <= right[0]): #result.append(left[0]) result.append(left.pop(0)) #i+= 1 else: #result.append(right[0]) result.append(right.pop(0)) #j+= 1 if (len(left) > 0): result.extend(ConfiationAlgorithm(left)) else: result.extend(ConfiationAlgorithm(right)) return result if __name__ == '__main__': a = [20,30,64,16,8,0,99,24,75,100,69] print ConfiationAlgorithm(a) b = [random.randint(1,1000) for i in range(10)] print ConfiationAlgorithm(b)
到此,相信大家對“python歸并排序實例分析”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。