python将10到1递减_(Python)如何将3个递减列表合并成一个递减列表?
发布日期:2021-06-24 14:54:09 浏览次数:5 分类:技术文章

本文共 1146 字,大约阅读时间需要 3 分钟。

以下代码基于:

第一次左右合并得到中间结果

下一个合并中间结果和中间结果

代码

def Merge3Way(left,middle,right):

"""Takes three lists that are sorted in decreasing order and merges them into

one list ordered largest to smallest"""

# Step 1: Merge left & right

res_1 = []

left_ind, right_ind = 0, 0

while left_ind < len(left) and right_ind < len(right):

if left[left_ind] > right[right_ind]:

res_1.append(left[left_ind])

left_ind += 1

else:

res_1.append(right[right_ind])

right_ind += 1

for left_ind in range(left_ind, len(left)):

res_1.append(left[left_ind])

for right_ind in range(right_ind, len(right)):

res_1.append(left[right_index])

# Step 2: Merge intermediate result and middle

res_2 = []

res_ind, middle_ind = 0, 0

while res_ind < len(res_1) and middle_ind < len(middle):

if res_1[res_ind] > middle[middle_ind]:

res_2.append(res_1[res_ind])

res_ind += 1

else:

res_2.append(middle[middle_ind])

middle_ind += 1

for res_ind in range(res_ind, len(res_1)):

res_2.append(res_1[res_ind])

for middle_index in range(middle_ind, len(middle)):

res_2.append(middle[middle_ind])

return res_2

试验

result = Merge3Way([3,2,1],[6,5,4],[9,8,7])

print(result)

# Output: [9, 8, 7, 6, 5, 4, 3, 2, 1]

转载地址:https://blog.csdn.net/weixin_33478634/article/details/113980032 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:python脚本怎么用来处理数据_长时间运行数据处理python脚本的程序结构
下一篇:mysql获取刚新增的数据库_如何取得刚插入数据库的数据的id mysql

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年03月31日 00时34分41秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章