关键概念
T(n): worst case - max time for sorting any input of size n
T(n): expected time - the weighted average time for sorting input of size n
Asymtotic Notation
排序算法
Merge Sorting - 归并排序
![](https://img.haomeiwen.com/i15133911/c91b5106ae242868.gif)
python实现
def MergeSort(left, right):
# 比较传过来的两个序列left,right,返回一个排好的序列
i, j = 0, 0
result = []
while i < len(left) and j < len(right):
if left[i] <= right[j]:
result.append(left[i])
i += 1
else:
result.append(right[j])
j += 1
result += left[i:] # 这时候i或者j到了序列的最后
result += right[j:]
print(result)
return result
def SortByMerge(arr, size):
if size <= 1:
return arr
i = int(size/2)
left = SortByMerge(arr[:i], i)
right = SortByMerge(arr[i:], size - i)
return MergeSort(left, right)
arr = [12, 11, 13, 5, 7, 6]
print(SortByMerge(arr, len(arr)))
其余重点
递归算法分析
- 代换法
- 树形图法
- 主方法
网友评论