2013-03-01 77 views
-3

閱讀本書算法簡介(CLRS)對我有幫助嗎?如何學習這門課程與理論計算機科學的其他領域相聯繫?(我的意思是說,如果有任何我可以得到的,我會提供見解和見解)。算法簡介

我對這個概念很陌生。我對目前在課程中學到的排序算法感到厭倦。我想在學習課程時有更廣泛的視野。這對我很有幫助,如果你能爲我提供一個關於事情的結構。提前感謝! :)

+0

你認爲哪些「理論計算機科學的其他領域」不需要對算法分析有基本的瞭解? – mbeckish 2013-03-01 13:54:27

+1

您好,歡迎您在理論上的CS stackexchange站點上找到這些問題的答案。 StackOverflow是基於您面臨的實際問題的實用,可回答的問題。根據您面臨的實際問題查看實用的,可回答的問題 – 2013-03-01 13:54:41

回答

1

我不確定這個問題有一個具體的答案,這是正確的地方問它,但它仍然是一個有用的。除了相信那些花費大量生命來指導人們學習技能的人們(他們將在他們的餘生(您的教授)中使用)之外,我一直將算法設計作爲學習如何更清晰思考的一種方法。這是我相信每個人都可以學習的東西。另外,當我還是一名學生時,有很多次我對我被要求學習的東西感到沮喪(相信這是一種浪費)。幾乎所有我發現它非常有用並且經常使用。回想起來,我希望我已經給了我的一些教授更多的學分,然後在上學的時候這樣做了。

4

算法是理論知識在計算機科學中的實際應用;可以這麼說,它們是計算機科學工程方面最理論化的部分。如果沒有對算法的研究,軟件中的任何人都可能是一個業餘愛好者 - 因爲沒有效率的計算就毫無用處 - 或者不會產生太多的東西,因爲他必須一直專注於解決問題,而不是實際編寫已知的實現解決問題。

從教學的角度來看,算法是將理論知識昇華爲精確的表達。你可能會理解圖遍歷是什麼以及應該如何強連接組件;如果你試圖給這些想法提供一個簡潔的形式,最好的辦法是寫下一個你想要的算法。

在正式的層面上,它們幫助我們理解我們應對的概念;當我們聲稱在這個或那個複雜性中可以解決某個問題時,我們需要一個算法來證明它。例如,如果您在一般情況下讀到排序在O(n log n)中,則可以繼續並相信您的教授;也許你甚至有直覺,爲什麼這可能是真的。但要真正證明它,你需要一個算法來解決排序問題,然後在一般情況下證明它在O(n log n)中運行。因此,在理論層面上,算法幫助我們根據問題的複雜性對問題進行分類(閱讀:「難度」)。