python 使用python3中的队列合并排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用python3中的队列合并排序相关的知识,希望对你有一定的参考价值。

from collections import deque


def merge_sort(v: list) -> list:
    if len(v) < 2:
        return v
    middle = int(len(v) / 2)
    left = deque(merge_sort(v[:middle]))
    right = deque(merge_sort(v[middle:]))
    out = []
    while left and right:
        out += [left.popleft()] if left[0] < right[0] else [right.popleft()]
    out += left or right
    return out


# Test 1
v_t1 = [7, 5, 9, 3, 1, 6]
print(merge_sort(v_t1))

# Test 2
v_t1 = [1, 7, 5, 9, 3, 1, 6]
print(merge_sort(v_t1))

# Test 3
v_t1 = []
print(merge_sort(v_t1))

# Test 4
v_t1 = ['z', 'a', 'f', '<', 'c', '*']
print(merge_sort(v_t1))

以上是关于python 使用python3中的队列合并排序的主要内容,如果未能解决你的问题,请参考以下文章

合并 k 排序数组 - 优先队列与传统合并排序合并,何时使用哪个?

Python3爬虫用Python中的队列来写爬虫

合并Dataframe(熊猫)中的所有列-python3 [重复]

按python3中的datetime排序

合并排序python中的反转数

python3将两个列表合并成字典的三种方法