笔记关键词检索?

在所有笔记中搜索你感兴趣的关键词!

《算法导论(原书第3版)》 ──   Introduction to Algorithms, third edition

作者:[美] Thomas H.Cormen,[美] Charles E.Leiserson,[美] Ronald L.Rivest,[美] Clifford Stein 著,殷建平,徐云,王刚 等 译


主定理(Master Theorem)

............

算法复杂度

............

归并排序

归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。
算法步骤:


申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列;


设定两个指针,最初位置分别为两个已经排序序列的起始位置;


比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置;


重复步骤 3 直到某一指针达到序列尾;


将另一序列剩下的所有元素直接复制到合并序列尾。、



Python代码示例:

def mergeSort(arr):
import math
if(len(arr)<2):
return arr
middle = math.floor(len(arr)/2)
left, right = arr[0:middle], arr[middle:]
return merge(mergeSort(left), mergeSort(right))
def merge(left,right):
result = []
while left and right:
if left[0] <= right[0]:
result.append(left.pop(0))
else:
result.append(right.pop(0));
while left:
result.append(left.pop(0))
while right:
result.append(right.pop(0));
return result
 

............