繁体   English   中英

查找以下 java 代码的时间复杂度

[英]finding time complexity for the below java code

我试图找出下面代码的时间复杂度,但我不确定它是否正确。 谁能帮我找出下面代码的时间复杂度。 代码语言为 JAVA。

代码:

    // importing the necessary header files for the program 
// header files are imported using the keyword import 
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

//creating a class called "Partone". class can be created using the keyword class 
public class Partone
{

        public static void main(String[] args) throws IOException 
        {

                // opening a file named "hikernet1"
                File inputFile = new File("hikernet1.txt");
                int maxTransmission = 0; //declaring maxTransmission as Integer data type and setting as 0

                //reading the content of the file
                Scanner reader = new Scanner(inputFile);

                // inputCoordinatedAndTransmissionRange
                String[] iCATR = reader.useDelimiter("\\A").next().replaceAll("\n", ",").replace("\r", "").split(",");

                for (int i = 0; i < Integer.parseInt(iCATR[0]); i++)
                {
                        int transmissions = 0; //declaring transmissions as integer data type and setting is as 0
                        String[] thisHiker = iCATR[i+1].split(" ");
                        int transMissionRange = Integer.parseInt(thisHiker[2]);
                        for (int j = 0; j < Integer.parseInt(iCATR[0]); j++)
                        {
                                int distance = (int) Math.sqrt( 
                                                Math.pow(Integer.parseInt(thisHiker[0])-Integer.parseInt(iCATR[j+1].split(" ")[0]), 2) + //x2-x1
                                                Math.pow(Integer.parseInt(thisHiker[1])-Integer.parseInt(iCATR[j+1].split(" ")[1]), 2)); //y2-y1
                                                        
                                if (distance<=transMissionRange) 
                                {
                                        transmissions++;
                                }
                        }
                                                
                        if (transmissions>maxTransmission)  //checking the condition 
                        {
                                maxTransmission = transmissions;
                        }
                }

                System.out.println(" The Maximum Transmission: "+maxTransmission);
                
                //the outpit will be displayed in the hikernet1out file 
                FileWriter fw = new FileWriter("hikernet1out.txt"); //hikernet1out is the name of the output file 
                fw.write(""+maxTransmission);
                fw.close(); //closing the file 
                
                reader.close(); //closing all the files 
                
        }

} //end of the program 

任何帮助将不胜感激。 提前致谢。

Integer.parseInt(iCATR[0]); 重新计算任何值让我们考虑 n。

对于外循环的每次迭代,内循环运行 n 次。

嵌套循环总迭代次数=外循环总迭代次数。 内循环的总迭代次数 = n * n = n^2

对于每次迭代嵌套循环执行 O(1) 操作。

总时间复杂度 = O(n^2)*O(1) = O(n^2)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM