Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java搜索算法_Java_Algorithm_Search - Fatal编程技术网

Java搜索算法

Java搜索算法,java,algorithm,search,Java,Algorithm,Search,任何人都可以告诉java示例/算法使用以下实现在数组中搜索元素: -O(n^2)算法与 -O(n)算法 注意:这不是一个家庭作业。那么O(n)将只是一个线性搜索;从开始到结束遍历列表,直到遇到要搜索的内容为止 奇怪的是,你想要一个O(n²)算法。。。但您可以做的是,在for循环的每次迭代中(在O(n)搜索中),睡眠时间由数组的长度定义(Thread.sleep(array.length))。“睡眠”周期将是O(n),因为它线性地取决于数组的长度,而整个线性搜索也将是O(n),因此结合起来,整个过

任何人都可以告诉java示例/算法使用以下实现在数组中搜索元素:
-O(n^2)算法与
-O(n)算法

注意:这不是一个家庭作业。

那么
O(n)
将只是一个线性搜索;从开始到结束遍历列表,直到遇到要搜索的内容为止

奇怪的是,你想要一个
O(n²)
算法。。。但您可以做的是,在for循环的每次迭代中(在
O(n)
搜索中),睡眠时间由数组的长度定义(
Thread.sleep(array.length)
)。“睡眠”周期将是
O(n)
,因为它线性地取决于数组的长度,而整个线性搜索也将是
O(n)
,因此结合起来,整个过程将是
O(n²)


O(n)

for (int i = 0 ; i < array.length ; i++) {
    if (array[i] == SOME_ELEMENT) {
        // ...
        break;
    }
 }    
for (int i = 0 ; i < array.length ; i++) {
    Thread.sleep(array.length);
    if (array[i] == SOME_ELEMENT) {
        // ...
        break;
    }
 }
  • 在数组中搜索单个项是
    O(N)
  • 如果使用带有两个嵌套循环的简单算法,则在数组中搜索最长的递增数列是
    O(N^2)
    *
注意:这不是特定于Java的



*存在一种更快的算法来执行此搜索。

执行
O(n²)
搜索算法没有任何意义

要执行
O(n)
算法,只需搜索列表中的元素

for(int i=0;i<array.length;i++)
  if(array[i]==search)
    return array[i];

for(int i=0;i如何了解数组。从API中进行二进制搜索???O(n²)应该很容易;取长度,称为n,等待n²秒,然后进行线性搜索。@Iarsmans,我认为他在寻找-O(n^2)和-O(n)算法(大O之前的减号),如果不是家庭作业,请解释搜索O(n²)的原因算法-如前所述,它对于简单的搜索没有意义(并且在排序数组中搜索比O(n)更好,如@chaitanya10@DThought:正是我的想法。我无法想象为什么有人在没有作业的情况下搜索O(n^2)算法…-1问问题