【发布时间】:2017-04-20 00:51:45
【问题描述】:
我正在编写函数来查找应该在给定数组中插入目标值的位置。我们假设数组具有不同的值并按升序排序。
这里我希望时间复杂度为 O(logN)。
public static int FindPosition(int[] Arr, int element)
{
int i; int u=0;
{
for(i=0;i<Arr.length;i++)
{
if(element>Arr[i])
u++;
}
}
return u;
}
这个程序的时间复杂度是否为 O(log n)。 任何人都可以帮助我更改功能,使其可以在 o(log n) 中。
【问题讨论】:
-
它是 O(n)。你想要二分查找。是线性搜索。您可以在元素 后停止循环
-
假设您参考此post 以了解如何计算时间复杂度。
标签: java arrays time-complexity runtime-compilation