在while(boolean)的情况下while循环的时间复杂度?

时间:2016-08-08 09:51:43

标签: java while-loop time-complexity

我正在尝试理解函数的时间复杂度计算,但我在这一点上陷入困​​境。与 for 循环不同,下面代码中显示的循环将取决于输入字符串长度。如何计算此类案件的时间复杂度?

功能这是

  

块引用

输入数据: 4Gopi7Krishna3Msc5India

输出数据: {"4":"Gopi","7":"Krishna","3":"Msc","5":"India"}

输入数据和长度可能每次都有所不同。

 public static String SplitData(String input) {
     try {
         String outputJSON = "{";
         boolean run = true;
         while (run) {
             String firstChar = String.valueOf(input.charAt(0));
             int length = Integer.parseInt(firstChar);
             if (length > 0) {
                 String data = input.substring(1, (length + 1));
                 outputJSON = outputJSON + "\"" + String.valueOf(length) + "\":\"" + data + "\"";
                 if (length + 1 == input.length()) {
                     run = false;
                     outputJSON = outputJSON + "}";
                     System.out.println("TAG " + length + " LENGTH " + length + " DATA " + data + " INPUT " + input);
                 } else {
                     outputJSON = outputJSON + ",";
                     input = input.substring(length + 1, input.length());
                     System.out.println("TAG " + length + " LENGTH " + length + " DATA " + data + " INPUT " + input);
                 }
             } else //IF INPUT IS NOT VALID MAKE THE RETURN JSON NULL
             {
                 run = false;
                 outputJSON = "Invalid Input";
             }
         }
         return outputJSON;
     } catch (Exception e) {
         e.printStackTrace();
         return "Invalid Input";
     }
 }

1 个答案:

答案 0 :(得分:0)

复杂性取决于执行结束前可能的操作次数,如果你不改变内部的操作,for循环就不会更快。 通过使用字符串操作函数

,这个函数可以更简单,更快捷
/var/git_repos