zoukankan      html  css  js  c++  java
  • Python归并排序(递归实现)

    为什么归并排序如此有用?
    1. 快捷和稳定
    归并排序成为⼀一个非常棒的排序算法主要是因为它的快捷和稳
    定。它的复杂度即使在最差情况下都是O(n log n)。而快速排序
    在最差情况下的复杂度是O(n^2),当n=20的时候,它比归并要
    慢4.6倍。

    2.容易实现

    #coding:utf-8
    def merge_sort(array):
    	length = len(array)
    	if length <= 1: return array
    	m = length / 2
    	left = array[:m]
    	right = array[m:]
    	left = merge_sort(left)
    	right = merge_sort(right)
    	return merge(left,right)
    	
    def merge(left,right):
    	result = []
    	while len(left)>0 and len(right)>0 :
    		if left[0] <= right[0]:
    			result.append(left.pop(0))
    		else:
    			result.append(right.pop(0))
    	result.extend(left)
    	result.extend(right)
    	return result
    	
    if __name__ == '__main__':
    	print merge_sort([33,11,2,3,7,2234234234234234,4,23,2,3,4,7])
    	print merge_sort([0,1,2,3,4,5,5,6,7,8,9])
    	print merge_sort([9,8,7,6,5,5,4,3,2,1,0])
    

      

  • 相关阅读:
    表单
    框架
    表格
    列表
    标签
    封装类(包装类)
    常见类 --Object
    日志
    异常
    选择结构
  • 原文地址:https://www.cnblogs.com/wucg/p/3716215.html
Copyright © 2011-2022 走看看