我經常被遞歸算法略微難住,這些算法似乎需要邏輯上的魔法跳躍(伴隨着墨水短缺所產生的大量縮減符號)。分析遞歸算法
我意識到替代方法是簡單地記住所有常用算法的Big O符號,但是在某個點上,該方法失敗。例如,我很高興地公開了泡泡排序,插入排序,二叉樹插入/去除,合併排序和快速排序的性能,但不要求我提出AVL樹或Djikstra的最短路徑算法的性能我的頭。
我在哪裏可以得到:
- 使用的話,而不是符號的豐富的
- 實踐問題,以確認我的新獲得的認識實際上是正確的 遞歸算法分析的討論
實施例:
爲:
西格瑪新生T(1 + CV)
可能的「好」的當量:
在樹1個節點(它是1 +一個節點的子節點的#),所需的工作的量,其然後針對原始節點是根的樹中的每個元素執行一次。
邊解說:
我可以簡單地觀看每一個算法的視頻,因爲沒有辦法讓一個人的聲音轉成標(或任何其他扭曲的),但我懷疑這會採取了大量資金的時間與閱讀文字描述相比。
更新:
這裏是亟待解決的問題1個來源:http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-046j-introduction-to-algorithms-sma-5503-fall-2005/(這個剷球上述#2)
你應該學習如何使用符號來交流這些想法。它高效,準確,幾乎每個人都使用的語言。 – jason 2011-04-02 16:40:29
@Jason:如果你是CS學生或數學和神學專業。對於一個好的程序員來說,理解它的意義應該就足夠了。 – Bytemain 2011-04-02 16:44:15
+1對傑森的觀點。爲了獲得舒適(實際上比大多數人更好),我推薦了精彩的書* [具體數學:計算機科學基礎](http://en.wikipedia.org/wiki/Concrete_Mathematics)。 *前兩章應該足夠了(可能還有最後一章),但它寫得很好,很難抵制其他章節的閱讀。 – ShreevatsaR 2011-04-03 03:31:34