找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 4916|回复: 0

[求助] 新手,问一下程序的复杂度问题

1

主题

1

帖子

1

积分

贫民

积分
1
ding 发表于 2016-10-18 16:24:34 | 显示全部楼层 |阅读模式
在Python基础教程的列表推导式介绍中看到一段代码:
boys=['chris','arnold','bob']
girls=['alice','bernice','clarice']
[b+'+'+g for b in boys for g in girls if b[0]==g[0]]

此时复杂度应为n^2
作为改进,书里给出以下代码:
boys=['chris','arnold','bob']
girls=['alice','bernice','clarice']
letterGirls={}
for girl in girls:
        letterGirls.setdefault(girl[0],[]).append(girl)
print([b+'+'+g for b in boys for g in letterGirls[b[0]]])

问这个代码的算法复杂度是怎样的,是否在所有word的首字母都不同时复杂度比上面的程序还要高?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表