Big o x=>;的函数的大O表示法;0

Big o x=>;的函数的大O表示法;0,big-o,Big O,我们应该如何用大O符号表示函数f(x)=2x+1 请说明理由 (我认为它应该写成O(x),因为这个函数似乎比一个常数函数增长得更快,而我的一个同学认为它应该写成O(1))大O符号,简而言之,它告诉你算法相对于输入大小的性能。也就是说,你可以用它来表达“在一个小的输入上,算法是快的,但是当输入大小增加一倍时,算法会慢4倍……” 您的算法的性能是恒定的。它不会迭代或做任何随着输入大小的增加而倍增的事情。除了实施细节优化之外,它将始终在相同的时间内返回结果。 所以是O(1) 不能使用Big-O表示结果

我们应该如何用大O符号表示函数
f(x)=2x+1

请说明理由


(我认为它应该写成
O(x)
,因为这个函数似乎比一个常数函数增长得更快,而我的一个同学认为它应该写成
O(1)

大O符号,简而言之,它告诉你算法相对于输入大小的性能。也就是说,你可以用它来表达“在一个小的输入上,算法是快的,但是当输入大小增加一倍时,算法会慢4倍……”

您的算法的性能是恒定的。它不会迭代或做任何随着输入大小的增加而倍增的事情。除了实施细节优化之外,它将始终在相同的时间内返回结果。

所以是O(1)


不能使用Big-O表示结果的值。

简单地说,Big-O表示法告诉您算法相对于输入大小的性能。也就是说,你可以用它来表达“在一个小的输入上,算法是快的,但是当输入大小增加一倍时,算法会慢4倍……”

您的算法的性能是恒定的。它不会迭代或做任何随着输入大小的增加而倍增的事情。除了实施细节优化之外,它将始终在相同的时间内返回结果。

所以是O(1)


你不能用大O来表示结果的值。

你们都是对的。当x变为0时,函数的值为0。所有为0的函数都是O(x)和O(1)集合的一部分。虽然通常你会说O(1),因为它更精确。我函数的值是1。那么你是说它应该是O(1)?对不起,很明显这个值是1。不过这没关系。O表示法是一组函数。两个集合都包含函数
(f(x)=1)
,所以你们都是对的。不过,你的朋友“更正确”。你们都是对的。当x变为0时,函数的值为0。所有为0的函数都是O(x)和O(1)集合的一部分。虽然通常你会说O(1),因为它更精确。我函数的值是1。那么你是说它应该是O(1)?对不起,很明显这个值是1。不过这没关系。O表示法是一组函数。两个集合都包含函数
(f(x)=1)
,所以你们都是对的。不过,你的朋友“更正确”。谢谢你的回答。对不起,我是CS新手,请您向我解释一下“超越实现细节优化”的含义好吗?我的意思是,根据您使用的语言和在其上运行的体系结构,实际上倍数/添加大数字可能比小数字需要更长的时间。这取决于架构如何实现加法和乘法的细节。但这是不可预测的,与Big-O无关。谢谢您的回答。对不起,我是CS新手,请您向我解释一下“超越实现细节优化”的含义好吗?我的意思是,根据您使用的语言和在其上运行的体系结构,实际上倍数/添加大数字可能比小数字需要更长的时间。这取决于架构如何实现加法和乘法的细节。但这是不可预测的,与Big-O无关。