-3
私は関数の時間複雑さの計算を理解しようとしていますが、私はこの時点で固執しています。 の場合はループの場合の場合のループは入力文字列の長さによって異なります。そのような場合の時間複雑度の計算方法while(boolean)の場合のwhileループの複雑さ?
関数が行うこの
BLOCKQUOTE
入力データ: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";
}
}
を機能計算がfor-loopと異なるのはなぜでしょうか?なぜforループは入力長に依存しないと思いますか? – Fildor
こんにちはFildor私の質問は、そのようなn + 1のようにフレームする方法です、私は上記のようなwhileループの場合に行う方法が混乱しています、上記のコードは私が考えていた単なる例です。 – krishna