归并排序(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]
__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]
相关文章推荐
- Merge Sort(归并排序)的JAVA与Python实现
- [硕.Love Python] MergeSort(归并排序)
- python中的归并排序
- 【python菜鸟日记】-03算法导论-归并排序
- Python算法 归并排序和快速排序
- 【程序员笔试面试必会——排序①】Python实现 冒泡排序、选择排序、插入排序、归并排序、快速排序、堆排序、希尔排序
- 算法基础:排序(二)——归并排序——Python实现
- Python 数据结构与算法 —— 从分治的角度看快速排序、归并排序
- [排序] 归并排序(Python)
- Python实现归并排序
- 算法导论程序2--归并排序(Python)
- [硕.Love Python] MergeSort(归并排序)
- 快速排序 and 归并排序(python)
- python中的归并排序
- 小白学数据结构——四、排序算法Python(冒泡、选择、快速、插入、希尔、归并排序)
- 【Python排序搜索基本算法】之归并排序
- python实现归并排序
- Python一日一练15----归并排序
- Python - 归并排序
- python 链表的归并排序(附数组的归并排序作为对照)