2011-03-31 177 views
5

我目前正在通過我的第一個算法和數據結構類的一半。不幸的是,我的老師不太好,我們使用的在線圖書的描述非常模糊(http://people.cs.vt.edu/~shaffer/Book/)到目前爲止,我已經設法維持一個A,主要是由於運氣和常識,但它開始獲得很多現在我們正在處理排序,搜索以及更高級的數據結構,比如圖形。算法和數據結構

我想知道是否有任何網上資源,可以幫助我更好地學習這個主題,你會推薦。我明白瞭解這個話題的重要性,特別是在編寫高效的代碼和麪試工作時,我願意接受任何有助於我更好地學習和理解算法和數據結構的建議。

+0

http://stackoverflow.com/questions/3665370/book-to-learn-advance-concepts-in-data-structures-and-algorithms這些AREN」不一定是高級的,要麼 – dfb 2011-03-31 19:02:46

回答

0

我見過的學習算法和數據結構的最好的書是麻省理工學院簡介算法。無論您的水平如何,對您都有好處,適合初學者,中級和高級學習者。

2

你可能不會喜歡我的回答,但我期望你能做的最有效的事情就是處理你的態度。你經常會發現你在找什麼。所以如果你把你的教師視爲不合標準,而你的書就毫無價值;你會得到很少的。如果你看看你的教練的長處,並從書中得到你想要的,你會走得很遠。我瀏覽了你的文本,對我來說似乎並不那麼模糊。絕對要看其他答案中提供的參考資料,但也應該對課程有積極意義。

+3

肯定的態度可能是一個問題,但這個人也可能有一個問題。我記得我的第一個數據結構和算法類(起初有點難以掌握)。我的老師有很強的俄語口音,並且給了我們以前給他們的作業,讓他們在CS學習中比我們學習時間提高4-5年。這很痛苦。我從書本和同行那裏學到了這個學期,而不是從老師那裏學到的東西。 – 2011-03-31 19:14:11

+0

我完全可以看到你的觀點。我通常不會責怪我在老師的課堂上做什麼,但是這個話題似乎需要大量的深入解釋,而我的教授似乎並沒有這樣做。這經常讓我自己和大多數其他同學感到困惑。 – lessthanjacob 2011-03-31 19:21:22

0

我發現幻燈片位於:http://www.heppenstall.ca/academics/doc/242/是非常有幫助的。它們涵蓋了廣泛的數據結構和基本算法,幷包含有用的圖片以幫助瞭解正在發生的事情。

我不知道誰是第一個創建各種幻燈片,或者可能會維護最新版本 - 他們似乎已經找到了許多不同學校的服務器,並且至少有PDF和PPT格式。

1

就我個人而言,我總是發現學習東西的最好方法就是嘗試構建它。無論是算法,新設計模式還是數據結構,在代碼中創建事物的過程一直是我學習得最好的方式。

+0

但是如果我沒有編程經驗來做到這一點呢?我是計算機科學專業的第二年,對C++和C有很好的把握。你認爲我還能夠構建這些東西嗎? – lessthanjacob 2011-03-31 19:28:30

+0

@SkankinJake ...查看我上面的鏈接...僅僅學了一個學期的C++之後,我可以毫無困難地閱讀那本書...閱讀完後,我可以編寫自己的許多實現STL數據結構沒有太大困難。不是說我的STL比我的STL好(如果有合適的容器可用,我仍建議你使用),但只是說,你會明白它們是如何工作的。與算法相比,本書強調數據結構,因此您可能需要爲此找到其他補充材料。 – Jason 2011-03-31 20:02:44

+0

我一定會給你一個閱讀。謝謝。 – lessthanjacob 2011-03-31 20:12:21

2

我特別喜歡這本書:Data Structures with C++ Using STL by Ford and Topp。

它們包含了相當多的源代碼(所有這些代碼都可以從他們的網站上下載),並且很好地引導讀者通過對STL中實現的許多數據結構進行徹底的堅果實施,以及STL中不存在的一對數據結構(如圖)。您將從更基本的數據類型中獲得對每個數據結構的內部組成的很好的理解,以及您需要自己構建某些東西的足夠通用的引用,您將會很好地瞭解這些數據結構數據結構可以由更簡單的數據類型(一般意義上來說,也就是說,這些想法可以轉換爲任何其他語言)創建和編寫,以及它們應該如何在現實世界中應用。

它不是STL本身的參考,因爲它是STL數據結構如何實現的參考(儘管採用更簡單的形式......您不必擔心分配器,以及STL代碼中的許多其他輔助工具,可能會使初學者難以閱讀和理解)。

希望這有助於

傑森