在现实生活中更有效率?
计算机科学的复杂性表明它将是大O(n)所以它们应该是平等的。但这在现实生活中有所不同吗?
我认为100次效率更高。
答案 0 :(得分:0)
不需要O(N),因为你的输入大小是常数.O(1)的时间复杂度意味着,无论输入大小如何,算法都将花费恒定的时间。在你的情况下,100次或10000次是不变的。
答案 1 :(得分:0)
以这种方式谈论效率毫无意义。
如果您的任务是打印100或1000行,“效率”不在于重复次数。
“效率”是指以最佳方式做事;不看重复次数。从这个意义上说,当你担心打印语句的效率时,你可能会担心刷新缓存,IO缓冲等等。
而且:你说的是“迭代1到n并打印行”有O(n)!所以,你不要选择两个不同的n并说:因为底层任务是O(n);这样做100次就像做1000次一样。
含义:Big O旨在告诉您某项操作的潜在成本;它并不是要对 n 的具体实例说些什么。
答案 2 :(得分:0)
来自维基百科Big-O:
Big O表示法是一种描述限制的数学符号 当参数趋向于特定值或无穷大时,函数的行为。
是的,对于输入n
,您的打印算法时间复杂度为O(n)
。
当你谈论效率时,它实际上取决于你的实现和硬件等,但理论上它们实际上是平等的。
当你在谈论谁将更快时,那么通常输入尺寸较小的那个会更快。