本文介绍归并排序及python3实现,原理部分稍后补上,pyhton3代码如下:
__author__ = "Allen Liu"
__time__ = "2017/8/13"
'''This program used to '''
import random
# 归并排序
def merge(data, low, mid, high):
i = low
j = mid + 1
ltmp = []# 开一个临时列表,用于存放排好序的列表
while i <= mid and j <= high:
if data[i] < data[j]:
ltmp.append(data[i])
i += 1
else:
ltmp.append(data[j])
j += 1
while i <= mid:
ltmp.append(data[i])
i += 1
while j <= high:
ltmp.append(data[j])
j += 1
data[low : high + 1] = ltmp # 将排好序的列表写回
# 定义递归排序方法
def merge_soer(data, low, high):
if low < high:
mid = (low + high) // 2 # 折半分解
merge_soer(data, low, mid)
merge_soer(data, mid + 1, high)