Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 如何找到这个函数的大O_Java_Loops_Big O_Concept - Fatal编程技术网

Java 如何找到这个函数的大O

Java 如何找到这个函数的大O,java,loops,big-o,concept,Java,Loops,Big O,Concept,我有一个函数,它在Java中迭代8x8多维数组。我试图理解findTheBoss()中此函数的大O。它在静态8x8网格中搜索给定字符串。我真的很想了解如何找到像这样的基本函数的大O。我想这是O(n^2),但我不确定。请帮助我理解如何找到这个函数的方程 public static void FindTheBoss(String[][] bossGrid, String bossName){ for(int i=0; i < bossGrid.length; i++) {

我有一个函数,它在Java中迭代8x8多维数组。我试图理解findTheBoss()中此函数的大O。它在静态8x8网格中搜索给定字符串。我真的很想了解如何找到像这样的基本函数的大O。我想这是O(n^2),但我不确定。请帮助我理解如何找到这个函数的方程

public static void FindTheBoss(String[][] bossGrid, String bossName){

    for(int i=0; i < bossGrid.length; i++)
    {               
        //Iterate through each row?

        for(int j=0; j < bossGrid[i].length; j++)
        {

            if(bossGrid[i][j].equals(bossName))
            {

                System.out.println("Found '" + bossName + "' at position "+ i + "," + j);
                break;
            }
        }

    }   

}
public static void FindTheBoss(字符串[][]bossGrid,字符串bossName){
for(int i=0;i
你几乎是对的。但要小心,大O符号可能会很棘手,即使在你有条理的时候它并没有那么复杂

让我们总结一下代码的作用:您收到一个大小为NxN的2D数组和一个长度为s的字符串,并尝试在矩阵中查找该字符串(一次或多次)。即使有时你打破了这个循环,只要假设它不会发生那么多。然后,您只需迭代该矩阵的元素,并比较每个元素的两个字符串

基本上,如果你说这个算法是O(N^2),那么它可能足够公平了。但是要小心知道N是什么。如果你的网格可以有N行和M列,你会说算法是O(N*M),只有在正方形的情况下才是O(N^2)(这是一个非常常见的错误)

然而,我不会说这个算法是O(N^2),而是O(S*N^2)。事实上,平等者做什么?逐字符比较,直到字符不同。在N很小但字符串非常长的情况下,您会发现考虑到这一点很重要



注意:您可以阅读这篇关于String.equals()的复杂性的文章。如果比较预计算的长度或散列码,它显然比O(S)快,但这些都是内部优化,最坏的情况仍然是O(S)。

你几乎是对的。但要小心,大O符号可能会很棘手,即使在你有条理的时候它并没有那么复杂

让我们总结一下代码的作用:您收到一个大小为NxN的2D数组和一个长度为s的字符串,并尝试在矩阵中查找该字符串(一次或多次)。即使有时你打破了这个循环,只要假设它不会发生那么多。然后,您只需迭代该矩阵的元素,并比较每个元素的两个字符串

基本上,如果你说这个算法是O(N^2),那么它可能足够公平了。但是要小心知道N是什么。如果你的网格可以有N行和M列,你会说算法是O(N*M),只有在正方形的情况下才是O(N^2)(这是一个非常常见的错误)

然而,我不会说这个算法是O(N^2),而是O(S*N^2)。事实上,平等者做什么?逐字符比较,直到字符不同。在N很小但字符串非常长的情况下,您会发现考虑到这一点很重要



注意:您可以阅读这篇关于String.equals()的复杂性的文章。如果比较预计算的长度或散列码,它显然比O(S)快,但这些都是内部优化,最坏的情况仍然是O(S)。

你几乎是对的。但要小心,大O符号可能会很棘手,即使在你有条理的时候它并没有那么复杂

让我们总结一下代码的作用:您收到一个大小为NxN的2D数组和一个长度为s的字符串,并尝试在矩阵中查找该字符串(一次或多次)。即使有时你打破了这个循环,只要假设它不会发生那么多。然后,您只需迭代该矩阵的元素,并比较每个元素的两个字符串

基本上,如果你说这个算法是O(N^2),那么它可能足够公平了。但是要小心知道N是什么。如果你的网格可以有N行和M列,你会说算法是O(N*M),只有在正方形的情况下才是O(N^2)(这是一个非常常见的错误)

然而,我不会说这个算法是O(N^2),而是O(S*N^2)。事实上,平等者做什么?逐字符比较,直到字符不同。在N很小但字符串非常长的情况下,您会发现考虑到这一点很重要



注意:您可以阅读这篇关于String.equals()的复杂性的文章。如果比较预计算的长度或散列码,它显然比O(S)快,但这些都是内部优化,最坏的情况仍然是O(S)。

你几乎是对的。但要小心,大O符号可能会很棘手,即使在你有条理的时候它并没有那么复杂

让我们总结一下代码的作用:您收到一个大小为NxN的2D数组和一个长度为s的字符串,并尝试在矩阵中查找该字符串(一次或多次)。即使有时你打破了这个循环,只要假设它不会发生那么多。然后,您只需迭代该矩阵的元素,并比较每个元素的两个字符串

基本上,如果你说这个算法是O(N^2),那么它可能足够公平了。但是要小心知道N是什么。如果你的网格可以有N行和M列,你会说算法是O(N*M),只有在正方形的情况下才是O(N^2)(这是一个非常常见的错误)

然而,我不会说这个算法是O(N^2),而是O(S*N^2)。事实上,平等者做什么?逐字符比较,直到字符不同。在N很小但字符串非常长的情况下,您会发现考虑到这一点很重要


注意:您可以阅读关于