您的位置:首页 > 编程语言 > Python开发

归并排序(python3)

2017-08-14 23:15 141 查看
本文介绍归并排序及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)
merge(data, low, mid, high)
data = list(range(10)) # 产生一个有序列表
random.shuffle(data) # 调用shuffle函数打乱顺序
print(data) # 排序前
select_sort(data) # 调用选择排序算法
print(data) # 排序后结果:
[3, 8, 4, 5, 6, 7, 1, 9, 2, 0]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: