python实现归并排序
2017-10-21 21:06
330 查看
归并排序是一种递归算法,不断将列表拆分为一半。 如果列表为空或有一个项,则按定义(基本情况)进行排序。如果列表有多个项,我们分割列表,并递归调用两个半部分的合并排序。 一旦对这两半排序完成,就执行称为合并的基本操作。合并是获取两个较小的排序列表并将它们组合成单个排序的新列表的过程。
时间复杂度
def mergeSort(alist): if len(alist)>1: mid = len(alist)//2 lefthalf = alist[:mid] righthalf = alist[mid:] mergeSort(lefthalf) mergeSort(righthalf) i=0 j=0 k=0 while i < len(lefthalf) and j < len(righthalf): if lefthalf[i] < righthalf[j]: alist[k]=lefthalf[i] i=i+1 else: alist[k]=righthalf[j] j=j+1 k=k+1 while i < len(lefthalf): alist[k]=lefthalf[i] i=i+1 k=k+1 while j < len(righthalf): alist[k]=righthalf[j] j=j+1 k=k+1 alist = [54,26,93,17,77,31,44,55,20] mergeSort(alist) print(alist)
时间复杂度
最优时间复杂度:O(nlogn) 最坏时间复杂度:O(nlogn) 稳定性:稳定
相关文章推荐
- python算法实现系列-归并排序
- Python实现归并排序
- 快速排序,归并排序,堆排序python实现
- Python实现归并排序
- Python 实现文本文件多路归并排序
- Python实现冒泡排序、选择排序、插入排序、快速排序、归并排序、二分法查找算法(基于《算法导论》伪代码)
- Python归并排序(递归实现)
- 算法 排序 python 实现--归并排序
- python实现归并排序
- 用Python实现八大排序算法--归并排序
- 归并排序(python实现)
- 使用python实现归并排序
- 用python实现归并排序
- 归并排序的Python实现
- 快排、堆排和归并排序的Python实现
- python中实现二分查找,插入排序,归并排序,快速排序
- 排序算法C++&&Python实现---归并排序
- Python 实现归并排序
- python实现快速排序和归并排序
- Merge Sort(归并排序)的JAVA与Python实现