我的軟件工程類介紹剛剛達到時間複雜度並學習如何分析某些算法。我很難看到他們如何得到解決方案,並希望有人能夠解釋它,希望有一些合理的證據?需要解釋算法的時間複雜性解決方案
void foo(int N) {
int k = 1;
while (k < N * N) {
k = k * 2;
}
}
他們的解決方案是,這個功能的大澳是O(logN)的 [我明白這裏提到日誌基地2]
我試圖通過思考來解決這個多少次會通過將隨機值分配給N進行迭代,我無法找到模式,有什麼幫助?
用二進制寫出'k'和'N'的值。這應該都是有道理的,然後 –
使用數學程序/庫來繪製循環次數與增加值N. – kaylum
@ user6918211:如果您認爲以下答案之一足夠,請將其標記爲答案。 – Charles