【发布时间】:2012-06-23 04:57:56
【问题描述】:
我忘记了如何计算算法的时间复杂度。我不是在寻找一本书或 30 页的博客来刷新这些知识。采用以下算法,请您纠正我计算时间复杂度的方式。谢谢
线性搜索
bool SeqSearch(int[] arr, int sValue) {
for (int index = 0; index < arr.Length-1; index++)
if (arr[index] == sValue)
return true;
return false;
}
使用的步骤和逻辑
- 循环遍历所有元素 -
N - 每个索引的比较 -
1还是N - 返回真或假 -
1
终于
我忘了我们是把它们加起来还是相乘?我以为我们必须添加所以最终得到
N+N+1 所以这一定是个大人物哦! N.O(N)
问题
- 我是乘以每个步骤所花费的时间还是将它们相加
- 对于比较,无法确定何时结束。那么需要多少时间(我假设为 1,因为它可以在第一个索引处找到,N 否则为最后一个索引)
- Assignments 和 Return 是常数时间 1 ?
注意:请不要让我访问网站。 SO 会持续很长时间,有相同/相似问题的人肯定会发现这篇文章的答案很有用。我无法相信其他网站何时会被关闭等。我也不在乎效率、时间复杂性,而是用于查找它的过程/步骤。
资源
http://faculty.simpson.edu/lydia.sinapova/www/cmsc250/LN250_Weiss/L03-BigOh.pdf
我只是想把这个链接放到 pdf 中,它清楚地解释了如何解释哪些陈述以及何时解释。就像我想要的一样。
【问题讨论】:
-
OK downvoter 关心解释?这不是编程问题吗?这是主观的吗?它不能说明问题吗?疯鹅
-
我不是反对者,但以“我无法打扰 Google 或查找有关该主题的书”开始您的问题并不是一个好的开始。投票结束。
-
@Li-aungYip 当然,向练习事物的人学习比教你练习的书更好。在某些时候是的,所以不理解这个问题很烦人,没有冒犯的意思:)祝你有美好的一天
-
OTOH,2x2=4 不会随着您找到它的网站消失而改变。这是数学。
标签: algorithm big-o time-complexity