㈠ 《數據結構與演算法分析》和《演算法導論》這兩本書哪個好
演算法導論堪稱經典啊,還有黑書,也稱為經典。沒有學高等數學完全沒關系的,只是個思維問題。學演算法就是堅持堅持,堅持就是勝利。不過會很辛苦的。有空多上POJ做做題。
㈡ 《演算法導論》《數據結構與演算法分析》《數據結構,演算法與應用》 這幾本書有什麼區別
數據結構先學,然後看演算法導論再看演算法,數據結構是演算法的基礎,演算法導論不看也是可以的。我是大三的計算機專業的學生~呵呵,快畢業了 - - 郁悶!
㈢ 《數據結構與演算法分析:C語言描述(原書第2版) 》這本書比起其他書,可以么看這本書需要什麼基礎
額,我想你說的《數據結構與演算法分析》應該是Weiss寫的那本吧,那本書豆瓣給出了9分的評分,已經算是非常高的分數了,但計算機世界的經典著作猶如浩瀚的海洋,了不起的編程書籍還有很多。
Kernighan的《程序設計實踐》是讓你全面了解編程該做些什麼的經典著作,盡管這書非常地薄。
cormen的《演算法導論》和Skiena 《演算法設計手冊》是比《數據結構與演算法分析》更大部頭的巨著。
Bentley的《編程珠璣》(1,2卷)將帶你領略演算法的力量。
侯捷的《STL源碼剖析》,深入講解C++標准庫的實現細節,讓你真正見識頂尖高手的傑作。
stevens 的《unix環境高級編程》《unix網路編程》是程序員的進階寶典,應當一讀再讀,因為你最終會明白,你的程序是運行在操作系統上的,是需要和網路交互的,你需要了解他們,和他們友好相處。
C++之父Bjarne Stroustrup的三本大作:《 C++程序設計語言 》、《C++程序設計原理與實踐 》、《C++語言的設計和演化 》是C++語言的最權威的指南,同時也是經典編程著作。
Bryant的《深入理解計算機系統》都是能告訴你計算機底層做了什麼工作,讓你更好地理解計算機,更好地利用CPU的天書。
關於軟體開發方面的經典著作有《程序員修煉之道》《代碼大全》《重構》《設計模式》,在任何一個編程論壇的推薦表裡,這些都是程序員必看圖書。
還有一本書叫《計算機程序的構造和解釋》,神一樣的著作,它可以顛覆你的編程思維。
當然,計算機演算法的頂尖之作要算knuth的《計算機程序設計藝術》(1-4卷),其內容極深極廣極難,那真是如浩瀚之海洋,嘆為觀止了。
所謂術業有專攻,每個領域都有其經典的著作,這就要根據你個人的興趣去進一步探究了。例如程序設計語言與編譯器、操作系統內核、硬體設計、人工智慧與機器學習、自然語言處理、資訊理論與信號處理、網路編程、機器人等等。
㈣ 《數據結構與演算法分析C語言描述》真的適合初學者嗎
C語言的基本語法你只要掌握了
數據結構都不是問題
數據結構就是 數據的組織方式 或者說 是一種更便捷的讓程序更高效的方法。這裡面用到的都是C語言的基礎知識。
就像你做飯 一個辣椒可以炒素菜、可以炒葷菜、也可以炸成辣椒油……
同樣一個東西 根據自己目的的不同 選擇一個最高效的方法 就是數據結構與演算法的目的.
書上的數據結構與演算法 只是給你一些實際應用中的列子和一些基本方法,現實中做程序還需要你自己根據自己的需要去組合去研究更好的演算法……
㈤ 求數據結構與演算法分析(java中文版)pdf 百度網盤
經常都在變只有~eeyykk卡姆,-它不會變的
㈥ [緊急]<<數據結構>>這一本和<<數據結構與演算法分析>>兩本書區別在哪
我的看法吧,《數據結構》偏理論,而《數據結構與演算法分析》偏於實踐演算法應用,包括演算法時空復雜度的分析和代碼的實現
㈦ 數據結構與演算法分析
本文出自:
www點54manong點com
請尊重原創,轉載請註明出處,謝謝!
什麼是數據結構,為什麼要學習數據結構?數據結構是否是一門純數學課程?它在專業課程體系中起什麼樣的作用?我們要怎麼才能學好數據結構?… 相信同學們在剛開始《數據結構》這門課的學習時,心裡有著類似前面幾個問題的這樣那樣的疑問。希望下面的內容能幫助大家消除疑惑,下定決心堅持學好這門課:
1 學習數據數據結構的意義
數據結構是計算機科學與技術專業、計算機信息管理與應用專業,電子商務等專業的基礎課,是十分重要的核心課程。所有的計算機系統軟體和應用軟體都要用到各種類型的數據結構。因此,要想更好地運用計算機來解決實際問題,僅掌握幾種計算機程序設計語言是難以應付當前眾多復雜的課題。要想有效地使用計算機、充分發揮計算機的性能,還必須學習和掌握好數據結構的有關知識。打好「數據結構」這門課程的扎實基礎,對於學習計算機專業的其他課程,如操作系統、資料庫管理系統、軟體工程、編譯原理、人工智慧、圖視學等都是十分有益的。
2 為什麼要學習數據結構
在計算機發展的初期,人們使用計算機的目的主要是處理數值計算問題。當我們使用計算機來解決一個具體問題時,一般需要經過下列幾個步驟:首先要從該具體問題抽象出一個適當的數學模型,然後設計或選擇一個解此數學模型的演算法,最後編出程序進行調試、測試,直至得到最終的解答。例如,求解梁架結構中應力的數學模型的線性方程組,可以使用迭代演算法來求解。
由於當時所涉及的運算對象是簡單的整型、實型或布爾類型數據,所以程序設計者的主要精力是集中於程序設計的技巧上,而無須重視數據結構。隨著計算機應用領域的擴大和軟、硬體的發展,非數值計算問題越來越顯得重要。據統計,當今處理非數值計算性問題佔用了85%以上的機器時間。這類問題涉及到的數據結構更為復雜,數據元素之間的相互關系一般無法用數學方程式加以描述。因此,解決這類問題的關鍵不再是數學分析和計算方法,而是要設計出合適的數據結構,才能有效地解決問題。下面所列舉的就是屬於這一類的具體問題。
例1:圖書館信息檢索系統。當我們根據書名查找某本書有關情況的時候;或者根據作者或某個出版社查找有關書籍的時候,或根據書刊號查找作者和出版社等有關情況的時候,只要我們建立了相關的數據結構,按照某種演算法編寫了相關程序,就可以實現計算機自動檢索。由此,可以在圖書館信息檢索系統中建立一張按書刊號順序排列的圖書信息表和分別按作者、書名、出版社順序排列的索引表,如圖1.1所示。由這四張表構成的文件便是圖書信息檢索的數學模型,計算機的主要操作便是按照某個特定要求(如給定書名)對圖書館藏書信息文件進行查詢。
諸如此類的還有學生信息查詢系統、商場商品管理系統、倉庫物資管理系統等。在這類文檔管理的數學模型中,計算機處理的對象之間通常存在著的是一種簡單的線性關系,這類數學模型可稱為線性的數據結構。
例2:八皇後問題。在八皇後問題中,處理過程不是根據某種確定的計演算法則,而是利用試探和回溯的探索技術求解。為了求得合理布局,在計算機中要存儲布局的當前狀態。從最初的布局狀態開始,一步步地進行試探,每試探一步形成一個新的狀態,整個試探過程形成了一棵隱含的狀態樹。如圖1.2所示(為了描述方便,將八皇後問題簡化為四皇後問題)。回溯法求解過程實質上就是一個遍歷狀態樹的過程。在這個問題中所出現的樹也是一種數據結構,它可以應用在許多非數值計算的問題中。
例3:教學計劃編排問題。一個教學計劃包含許多課程,在教學計劃包含的許多課程之間,有些必須按規定的先後次序進行,有些則沒有次序要求。即有些課程之間有先修和後續的關系,有些課程可以任意安排次序。這種各個課程之間的次序關系可用一個稱作圖的數據結構來表示,如圖1.3所示。有向圖中的每個頂點表示一門課程,如果從頂點vi到vj之間存在有向邊<vi,vj>,則表示課程i必須先於課程j進行。由以上三個例子可見,描述這類非數值計算問題的數學模型不再是數學方程,而是諸如線性表、樹、圖之類的數據結構。因此,可以說數據結構課程主要是研究非數值計算的程序設計問題中所出現的計算機操作對象以及它們之間的關系和操作的學科。
學習數據結構的目的是為了了解計算機處理對象的特性,將實際問題中所涉及的處理對象在計算機中表示出來並對它們進行處理。與此同時,通過演算法訓練來提高學生的思維能力,通過程序設計的技能訓練來促進學生的綜合應用能力和專業素質的提高。
3數據結構課程的內容
數據結構與數學、計算機硬體和軟體有十分密切的關系,它是介於數學、計算機硬體和計算機軟體之間的一門計算機專業的核心課程,是高級程序設計語言、操作系統、編譯原理、資料庫、人工智慧、圖視學等課程的基礎。同時,數據結構技術也廣泛應用於信息科學、系統工程、應用數學以及各種工程技術領域。
數據結構課程重在討論軟體開發過程中的方案設計階段、同時設計編碼和分析階段的若干基本問題。此外,為了構造出好的數據結構及其實現,還需考慮數據結構及其實現的評價與選擇。因此,數據結構的內容包括三個層次的五個「要素」,如圖1.3所示。
數據結構的核心技術是分解與抽象。通過分解可以劃分出數據的三個層次;再通過抽象,舍棄數據元素的具體內容,就得到邏輯結構。類似地,通過分解將處理要求劃分成各種功能,再通過抽象舍棄實現細節,就得到運算的定義。上述兩個方面的結合使我們將問題變換為數據結構。這是一個從具體(即具體問題)到抽象(即數據結構)的過程。然後,通過增加對實現細節的考慮進一步得到存儲結構和實現運算,從而完成設計任務。這是一個從抽象(即數據結構)到具體(即具體實現)的過程。熟練地掌握這兩個過程是數據結構課程在專業技能培養方面的基本目標。
結束語:數據結構作為一門獨立的課程在國外是從1968年才開始的,但在此之前其有關內容已散見於編譯原理及操作系統之中。20世紀60年代中期,美國的一些大學開始設立有關課程,但當時的課程名稱並不叫數據結構。1968年美國唐.歐.克努特教授開創了數據結構的最初體系,他所著的《計算機程序設計技巧》第一卷《基本演算法》是第一本較系統地闡述數據的邏輯結構和存儲結構及其操作的著作。從20世紀60年代末到70年代初,出現了大型程序,軟體也相對獨立,結構程序設計成為程序設計方法學的主要內容,人們越來越重視數據結構。從70年代中期到80年代,各種版本的數據結構著作相繼出現。目前,數據結構的發展並未終結,一方面,面向各專門領域中特殊問題的數據結構得到研究和發展,如多維圖形數據結構等;另一方面,從抽象數據類型和面向對象的觀點來討論數據結構已成為一種新的趨勢,越來越被人們所重視。
㈧ 學習c++數據結構與演算法分析 看那本書比較好啊
如果你對C++不是非常熟悉的話,學習演算法的時候還是看C語言描述的比較直觀。再者演算法學習方面比較權威的有一本《演算法導論》,這本書講的很有深度,所以認真讀起來還是很有意思的。另外需要糾正一點,語言本身就是來實現演算法的載體,所以學透一門語言也是必須的。
維斯【美】編的《數據結構與演算法分析》(第三版)C++版,這本書我看了,很不錯的,講得很好,演算法導論。
維斯【美】編的《數據結構與演算法分析》(第三版)C++版這本書,開始講了一些簡單的需要的C++知識,其實這本書用到的C++特性很少,所以即使你對C++的了解不多的話也可以看的。
單純地做演算法建議用C。
㈨ 數據結構與演算法分析——C語言描述(原書第2版,機械工業出版社),誰...
你好,能給我發一份嗎?[email protected]
㈩ 數據結構與演算法分析與數據結構有什麼區別
挺繞人的,不過大體一個是模型,一個是處理模型的方法