您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)利用python如何實(shí)現(xiàn)一個(gè)歸并排序算法,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。
圖示思路
Python 代碼
歸并排序理解:
1.通過(guò)二分法把一個(gè)數(shù)組按照遞歸拆分為左右兩組(至到獨(dú)立元素為止)
2.按照從底層往高層的方法左右數(shù)組對(duì)比,同時(shí)對(duì)兩個(gè)數(shù)組的第一個(gè)位置進(jìn)行比大小,將小的放入一個(gè)空數(shù)組,然后被放入空數(shù)組的那個(gè)位置的指針往后移一個(gè),然后繼續(xù)和另外一個(gè)數(shù)組的上一個(gè)位置進(jìn)行比較,以此類推。到最后任何一個(gè)數(shù)組先出棧完,就將另外i一個(gè)數(shù)組里的所有元素追加到新數(shù)組后面。
示例:
def merge(a, b): c = [] h = j = 0 while j < len(a) and h < len(b): if a[j] < b[h]: c.append(a[j]) j += 1 else: c.append(b[h]) h += 1 if j == len(a): for i in b[h:]: c.append(i) else: for i in a[j:]: c.append(i) return c def merge_sort(lists): if len(lists) <= 1: return lists middle = len(lists)/2 left = merge_sort(lists[:middle]) right = merge_sort(lists[middle:]) return merge(left, right) if __name__ == '__main__': = [4, 7, 8, 3, 5, 9] print merge_sort(a)
以上就是利用python如何實(shí)現(xiàn)一個(gè)歸并排序算法,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。