我正在努力圍繞代碼制定出大O表示法。Big-O表示法和編碼
我理解的基本步驟,即
for (int i = 0; i < n; i++)
將爲O(n)
這
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
將爲O(n )
我很掙扎瞭解何處或如何計算對數值。
即
請問:
for (int i = 0; i < n * 2; i++)
是O(log n)的或爲O(n log n)的或爲O(log 2 N)等
可有人請演示以代碼形式舉例說明以及如何形成符號。
我已經研究過並且不斷收集有關排序和列表被切碎等的示例,這在表單中是有意義的,但我似乎沒有得到如何將這些代碼應用於上面的代碼。
我是新來的整個編碼和大O符號。
我有我熟悉的對象,類,循環,功能,結構等 我忙學習C++,因爲它是我的課程的一部分。 我的課本並沒有很好地解釋對數big-o的計算。
你的問題可能會得到在http://programmers.stackexchange.com/上找到更好的答案。 – BLaZuRE
這是'O(n)',因爲你做了'2n'步驟。 – 2013-07-28 12:15:36
開始劃分間隔時出現對數,例如二分法搜索;當你工作與平衡的樹木(修剪左或右早午餐)等 –