這個算法感受有點兒 空間換時間的感受,由於他的分治策略,在使用分佈式,或者並行運算的時候應該有很大的發揮空間。html
視頻講解 C語言版python
http://v.youku.com/v_show/id_XNjg1NTQzNTg4.html?from=s1.8-1-1.2&spm=a2h0k.8191407.0.0#paction算法
歸併排序是創建在歸併操做上的一種有效的排序算法,該算法是採用分治法(Divide and Conquer)的一個很是典型的應用。app
將已有序的子序列合併,獲得徹底有序的序列;即先使每一個子序列有序,再使子序列段間有序。若將兩個有序表合併成一個有序表,稱爲二路歸併。分佈式
http://v.youku.com/v_show/id_XNjg1NTQzNTg4.html?from=s1.8-1-1.2&spm=a2h0k.8191407.0.0 ide
# -*- coding: UTF-8 -*- ''' Created on 2016年11月28日 @author: llg 歸併排序 採用遞歸的方式,進行排序 ''' def MergeSort(lists): if len(lists) <= 1: return lists num = int( len(lists)/2 ) left = MergeSort(lists[:num]) right = MergeSort(lists[num:]) return Merge(left, right) def Merge(left,right): r, l=0, 0 result=[] while l<len(left) and r<len(right): if left[l] < right[r]: result.append(left[l]) l += 1 else: result.append(right[r]) r += 1 result += right[r:] result += left[l:] return result print MergeSort([1, 10, 3, 4, 5, 116, 7, 90, 21, 23, 45])