time-complexity - if 在 for 循环中的时间复杂度
问题描述
for(int i = 0; i < Array.length ;i++)
{
...
if(s[i]>s[m]){
m = i;
}
}
这个算法的时间复杂度是多少?上)?
解决方案
for(int i = 0; i < Array.length ;i++)
{
...
if(s[i]>s[m]){
m = i;
}
}
作为n
数组的大小,并假设在“...”中完成的计算是恒定的,所以让我们将在“...”上花费的时间标记为c1
,然后将时间标记if(s[i]>s[m])
为 asc2
和m = i
c3。在最坏的情况下,此代码的时间复杂度为:
n * (c1 + c2 + c3)
可以用 来表示O(n)
。
推荐阅读
- angular - Angular 8分页pageCount不更新
- sql-server - 如何同时管理 Always Encrypted 技术和 TDE 并降低风险?
- redis - Redis 流 50k 消费者支持并行 - 容量要求
- java - 如何自动从 Firebase 中删除?
- algorithm - 为什么渐近复杂性类比不起作用?
- python-3.x - 包裹在函数中时 Python 代码变慢
- c# - 如何在 ASP.NET Core 中路由以删除错误 404 Not found
- string - 如何知道这个文件的编码?
- elixir - 如何通过 Ecto Multi 从先前插入的表键中检索 id
- ios - 如何从标签栏控制器更改标签栏项目