java中的时间复杂度是O(1)倍,O(n)倍
我有一个场景 -必须读取两个迭代器,并且需要将它们添加到列表并返回该列表 这里是什么“功能应在O(1)时间内运行” 如果我的理解是正确的, 如果数组有1个元素,处理时间应为1秒,如果数组有100个元素,则处理时间也应为1秒 如何实现上述读取和添加到新列表操作的1秒算法…java中的时间复杂度是O(1)倍,O(n)倍,java,algorithm,big-o,time-complexity,Java,Algorithm,Big O,Time Complexity,我有一个场景 -必须读取两个迭代器,并且需要将它们添加到列表并返回该列表 这里是什么“功能应在O(1)时间内运行” 如果我的理解是正确的, 如果数组有1个元素,处理时间应为1秒,如果数组有100个元素,则处理时间也应为1秒 如何实现上述读取和添加到新列表操作的1秒算法…O(1)时间复杂度意味着无论输入的大小如何,程序运行所花费的时间都是恒定的。 这就是时间复杂性被称为常数时间复杂性的原因 您可以将其与其他时间复杂性进行比较,例如O(n)这意味着程序所用的时间随着输入的大小而线性增加,即n O(
O(1)
时间复杂度意味着无论输入的大小如何,程序运行所花费的时间都是恒定的。
这就是时间复杂性被称为常数时间复杂性的原因
您可以将其与其他时间复杂性进行比较,例如
O(n)
这意味着程序所用的时间随着输入的大小而线性增加,即n
O(exp^n)
意味着所花费的时间将以指数方式增加。O(1)
O(1)描述了一个总是在同一时间执行的算法
(或空格)与输入数据集的大小无关。O(1)时间复杂度也称为常数时间复杂度
与列表大小无关,始终返回第一个元素
boolean IsFirstElementNull(List<string> elements)
{
return elements[0] == null;
}
布尔值IsFirstElementNull(列表元素)
{
返回元素[0]==null;
}
O(N)
O(N)描述了一种性能将线性增长且
与输入数据集的大小成正比
boolean包含值(列表元素、字符串值)
{
foreach(元素中的var元素)
{
if(element==value)返回true;
}
返回false;
}
好的源代码和
必须读取两个迭代器,并且需要将它们添加到列表中
-您应该从每个迭代器中读取单个元素,还是从这些迭代器中读取所有元素?如果我的理解正确,如果数组有1个元素,处理时间应为1秒,如果数组有100个元素,则处理时间也应为1秒--嗯。不。这是不对的O(1)
表示执行所需的时间与元素的数量无关。
boolean ContainsValue(List<string> elements, string value)
{
foreach (var element in elements)
{
if (element == value) return true;
}
return false;
}