在我的程序中,大O复杂性是否正确

时间:2013-04-23 21:55:40

标签: java big-o

我正在学习关于大O的一切,我试图获得每个程序的大复杂性。我想确保我的复杂性是正确的。

计划1:

步骤1 - 读取文件O(n)中的所有单词,n是单词表的大小 第2步 - 循环遍历每个单词的字符并操纵它们(我不会详细介绍它的作用,它只是一个循环) - O(m)其中m是单词中的字符数 第3步 - 插入HashMap O(1)

总计 - O(n + m)

计划2: 第1步 - 将单词传递给程序 第2步 - 在hashmap中查找单词 - O(1) 第3步 - 循环遍历每个单词的字符并操纵它们O(m),其中m是单词中的字符数 第4步 - 在函数中输入单词 - 我将其计算为O(2^m),其中m是单词中的字符数 第5步 - 在hashmap O(1)

中再次查找单词
O(2^m + m)

程序不涉及O(n),因为我只是查找hashmap。循环传入单词

的字符的唯一复杂性

1 个答案:

答案 0 :(得分:0)

迭代所有单词中的所有字符是O(n * m),其中n是单词的数量,m是单词的最大长度

插入和查找散列图在技术上是O(n)(如果所有元素都散列到相同的值),但是如果你的教授说它是O(1)那么就去那个

我们无法帮助您“第4步 - 在不知道功能是什么

的情况下将单词输入功能”