簡體   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