当前位置:  开发笔记 > 编程语言 > 正文

这个功能的复杂性是什么?

如何解决《这个功能的复杂性是什么?》经验,为你挑选了1个好方法。

我在Codeacademy练习,我必须做以下功能:

定义一个名为anti_vowel的函数,它将一个字符串text作为输入,并返回删除了所有元音的文本

这是我的解决方案.

def anti_vowel(text):
md = ""
for ch in text:
    if ch not in "aeiouAEIOU":
        md =  md + ch
return md 

它运作良好,但我想知道函数的复杂性是什么.

我认为这是O(nk)n:="文本长度"和k:="aeoiuAEIOU"的长度"".
我拿一个文本元素并将其与所有元音进行比较,这需要花费O(k)时间.但我重复了那么多次,所以我全力以赴O(nk).我的分析是否正确?我怎么能改进我的功能?它可能是线性的吗?



1> Daniel Rosem..:

Big-O复杂性并不像那样.k(元音的长度)是一个常数,它不会根据输入的长度而改变.因此,我们在计算复杂性时将其折扣.

你的函数只是O(n),即线性复杂度.

推荐阅读
赛亚兔备_393
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有