2011-04-02 147 views
1

我經常被遞歸算法略微難住,這些算法似乎需要邏輯上的魔法跳躍(伴隨着墨水短缺所產生的大量縮減符號)。分析遞歸算法

我意識到替代方法是簡單地記住所有常用算法的Big O符號,但是在某個點上,該方法失敗。例如,我很高興地公開了泡泡排序,插入排序,二叉樹插入/去除,合併排序和快速排序的性能,但不要求我提出AVL樹或Djikstra的最短路徑算法的性能我的頭。

我在哪裏可以得到:

  1. 使用的話,而不是符號的豐富的
  2. 實踐問題,以確認我的新獲得的認識實際上是正確的
  3. 遞歸算法分析的討論

實施例:

爲:

西格瑪新生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)

+5

你應該學習如何使用符號來交流這些想法。它高效,準確,幾乎每個人都使用的語言。 – jason 2011-04-02 16:40:29

+0

@Jason:如果你是CS學生或數學和神學專業。對於一個好的程序員來說,理解它的意義應該就足夠了。 – Bytemain 2011-04-02 16:44:15

+2

+1對傑森的觀點。爲了獲得舒適(實際上比大多數人更好),我推薦了精彩的書* [具體數學:計算機科學基礎](http://en.wikipedia.org/wiki/Concrete_Mathematics)。 *前兩章應該足夠了(可能還有最後一章),但它寫得很好,很難抵制其他章節的閱讀。 – ShreevatsaR 2011-04-03 03:31:34

回答

1

TopCoders有教程和全面的講解的一個重要來源。你試過了嗎?

http://www.topcoder.com/tc?d1=tutorials&d2=alg_index&module=Static

+1

那麼,他們關於遞歸的特定教程([第1部分](http://www.topcoder.com/tc?module=Static&d1=tutorials&d2=recursionPt1),[Part 2](http://www.topcoder.com/) tc?module = Static&d1 = tutorials&d2 = recursionPt2))雖然非常好,但不要深入分析的細節。 – ShreevatsaR 2011-04-03 03:25:08

+0

我已閱讀教程,並且必須同意分析中幾乎沒有任何內容。 – 2011-04-14 01:13:10