【问题标题】:Time Complexity and Space Complexity时间复杂度和空间复杂度
【发布时间】:2012-08-14 16:45:36
【问题描述】:

我的算法如下图所示。它对服务器进行远程调用并获取结果处理它们,然后再次将远程调用发送到系统。你能告诉我这个算法的时间和空间复杂度是多少吗?

Get search keyword from user
ϕ := getInfoFromConceptNet(keyword) // makes remote call
e := expandConcepts(ϕ)
expConcepts := {} // adds to an array
for each ec in e // first loop
expConcepts.add(ec) // adds to array
α= expandConcept(ec) //remote call
expConcepts.add(α) // adds to array
αkeywords=getKeywords(α) // calls a function to remove stopwords
for each αkw in αkeywords // second loop
Ω= expandConcept(αkw) // makes remote call
expConcepts.add(Ω) // adds to an array
results[ ]=performsearch(expConcepts,additional information) // searches the array

【问题讨论】:

  • 你能正确缩进你的 for 循环吗?即使在您的原始帖子中,我也无法弄清楚缩进。我只是编辑它以删除多余的空格以使其更易于阅读。

标签: algorithm time-complexity space-complexity


【解决方案1】:

您的第二个循环嵌套在第一个循环中?如果是,下面给出的复杂性分析代表您的算法。

该算法的时间和空间复杂度取决于expandConcept()getKeywords()add()performsearch() 函数的实现。对于add(),时间和空间复杂度可能是O(1),如果只是将其参数附加到expConcepts 数组前索引。假设performsearch()进行二分查找,有一个O(logN)N:expConcepts元素的个数),时间复杂度和常数空间复杂度,另外还有一个O(M*(expandConcept() time-comp)*K*(expandConcept() time-comp))M:集合e的基数, K:关键字的基数),你有 O(M*(expandConcept time-comp)*K*(expandConcept() time-comp)*logN) 的时间复杂度。空间复杂度取决于expandConcepts() 空间复杂度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-13
    • 2013-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-29
    • 1970-01-01
    • 2018-08-02
    相关资源
    最近更新 更多