考慮到這一塊的Java代碼:計算算法的複雜性(無限的算法)
import java.util.Scanner;
class BreakWhileLoop {
public static void main(String[] args) {
int n;
Scanner input = new Scanner(System.in);
while (true) {
System.out.println("Input an integer");
n = input.nextInt();
if (n == 0) {
break;
}
System.out.println("You entered " + n);
}
}
}
讓我們這種特殊情況下:the user will always enter any integer except 0
。
1.我可以將此代碼視爲算法嗎?
2.如果是,如何計算其複雜性?
由於
呃..問這些問題:1)這個算法做什麼? 2)這個算法運行什麼數據? – Rotem 2014-11-02 10:26:59
當它甚至沒有終止時,談論它的複雜性是否有意義?沒有什麼可以與任何東西成比例的。 – harold 2014-11-02 10:27:49
要計算時間複雜性,您必須知道輸入數據。所以如果你知道什麼數字序列,以零結束,用戶填入這個「算法」,那麼它是線性的。但說實話,把它稱爲算法沒有多大意義...... – 2014-11-02 10:30:25