博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python将10到1递减_(Python)如何将3个递减列表合并成一个递减列表?
阅读量:1541 次
发布时间:2019-04-21

本文共 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]

转载地址:http://lyldy.baihongyu.com/

你可能感兴趣的文章
为什么大家都看好RISC-V
查看>>
Keil MDK利用 fromelf 实现axf 转 bin 的方法
查看>>
2.10. Wi-Fi
查看>>
Golang Ruby ASP PowerShell
查看>>
6.1. 信息收集 - Windows
查看>>
日常运维管理技巧十三(chkconfig使用说明)
查看>>
日常运维管理技巧十四(rsync使用说明)
查看>>
日常运维管理技巧十五(linux系统日志)
查看>>
日常运维管理技巧十六(screen工具)【完】
查看>>
LAMP架构一(介绍)
查看>>
LAMP架构二(Mariadb数据库安装)
查看>>
LAMP架构三(Apache的安装)
查看>>
LAMP架构四(PHP5.6的安装)
查看>>
LAMP编译安装常见问题
查看>>
LAMP架构五( Apache和PHP结合)
查看>>
LAMP架构六( Apache虚拟主机)
查看>>
LAMP架构七( Apache用户认证)
查看>>
LAMP架构八( Apache域名跳转301)
查看>>
线上测试bug工具
查看>>
无法获取签名信息,请上传有效包(110506)
查看>>