#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : guangxu.qi
# @Time : 2020/9/15 15:37
# @FileName: 07_merge_sort.py
# @Description:
def merge_sort(alist):
if len(alist) <= 1:
return alist
mid = len(alist) // 2
left = merge_sort(alist[:mid])
right = merge_sort(alist[mid:])
res = []
# while left and right:
# if left[0] <= right[0]:
# res.append(left.pop(0))
# else:
# res.append(right.pop(0))
# res.extend(left if left else right)
i = 0
j = 0
while i < len(left) and j < len(right):
if left[i] <= right[j]:
res.append(left[i])
i += 1
else:
res.append(right[j])
j += 1
if i < len(left):
res.extend(left[i: len(left)])
else:
res.extend(right[j: len(right)])
return res
if __name__ == '__main__':
alist = [5, 3, 1, 4, 2, 3]
res = merge_sort(alist)
print(res)
归并排序(Merge Sort)
最新推荐文章于 2023-11-11 17:08:23 发布