这个算法感受有点儿 空间换时间的感受,由于他的分治策略,在使用分布式,或者并行运算的时候应该有很大的发挥空间。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])