1. 數據結構與演算法分析:C語言描述的目錄
第1章 引論1.1 本書討論的內容1.2 數學知識復習1.2.1 指數1.2.2 對數1.2.3 級數1.2.4 模運算1. 2.5 證明方法1.3 遞歸簡論總結練習參考文獻第2章 演算法分析2.1 數學基礎2.2 模型2.3 要分析的問題2.4 運行時間計算2.4.1 一個簡單的例子2.4.2 一般法則2.4.3 最大子序列和問題的解.2.4.4 運行時間中的對數2.4.5 檢驗你的分析2.4.6 分析結果的准確性總結練習參考文獻第3章 表、棧和隊列3.1 抽象數據類型(adt)3.2 表adt3.2.1 表的簡單數組實現3.2.2 鏈表3.2.3 程序設計細節3.2.4 常見的錯誤3.2.5 雙鏈表3.2.6 循環鏈表3.2.7 例子3.2.8 鏈表的游標實現3.3 棧adt3.3.1 棧模型3.3.2 棧的實現3.3.3 應用3.4 隊列adt3.4.1 隊列模型3.4.2 隊列的數組實現3.4.3 隊列的應用總結練習第4章 樹4.1 預備知識4.1.1 樹的實現4.1.2 樹的遍歷及應用4.2 二叉樹4.2.1 實現4.2.2 表達式樹4.3 查找樹adt--二叉查找樹4.3.1 makeempty4.3.2 find4.3.3 findmin和findmax4.3.4 insert4.3.5 delere4.3.6 平均情形分析4.4 avl樹4.4.1 單旋轉4.4.2 雙旋轉4.5 伸展樹4.5.1 一個簡單的想法4.5.2 展開4.6 樹的遍歷4.7 b-樹總結練習參考文獻第5章 散列5.1 一般想法5.2 散列函數5.3 分離鏈接法5.4 開放定址法5.4.1 線性探測法5.4.2 平方探測法5.4.3 雙散列5.5 再散列5.6 可擴散列總結練習參考文獻第6章 優先隊列(堆)6.1 模型6.2 一些簡單的實現6.3 二叉堆6.3.1 結構性質6.3.2 堆序性質6.3.3 基本的堆操作6.3.4 其他的堆操作6.4 優先隊列的應用6.4.1 選擇問題6.4.2 事件模擬6.5 d-堆6.6 左式堆6.6.1 左式堆的性質6.6.2 左式堆的操作6.7 斜堆6.8 二項隊列6.8.1 二項隊列結構6.8.2 二項隊列操作6.8.3 二項隊列的實現總結練習參考文獻第7章 排序7.1 預備知識7.2 插入排序7.2.1 演算法7.2.2 插入排序的分析7.3 一些簡單排序演算法的下界7. 4 希爾排序7.4.1 希爾排序的最壞情形分析7.5 堆排序7.5.1 堆排序的分析7.6 歸並排序7.6.1 歸並排序的分析7.7 快速排序7.7.1 選取樞紐元7.7.2 分割策略7.7.3 小數組7.7.4 實際的快速排序常式7.7.5 快速排序的分析7.7.6 選擇的線性期望時間演算法7.8 大型結構的排序7.9 排序的一般下界7.9.1 決策樹7.10 桶式排序7.11 外部排序7.11.1 為什麼需要新的演算法7.11.2 外部排序模型7.11.3 簡單演算法7.11.4 多路合並7.11.5 多相合並7.11.6 替換選擇總結練習參考文獻第8章 不相交集adt8.1 等價關系8.2 動態等價性問題8.3 基本數據結構8.4 靈巧求並演算法8.5 路徑壓縮8.6 按秩求並和路徑壓縮的最壞情形8.6.1 union/find演算法分析8.7 一個應用總結練習參考文獻第9章 圖論演算法9.1 若干定義9.1.1 圖的表示9.2 拓撲排序9.3 最短路徑演算法9.3.1 無權最短路徑9.3.2 dijkstra演算法9.3.3 具有負邊值的圖9.3.4 無圈圖9.3.5 所有點對最短路徑9.4 網路流問題9.4.1 一個簡單的最大流演算法9.5 最小生成樹9.5.1 prim演算法9.5.2 kruskal演算法9.6 深度優先搜索的應用9.6.1 無向圖9.6.2 雙連通性9.6.3 歐拉迴路9.6.4 有向圖9.6.5 查找強分支9.7 np-完全性介紹9.7.1 難與易9.7.2 np類9.7.3 np-完全問題總結練習參考文獻第10章 演算法設計技巧10.1 貪婪演算法10.1.1 一個簡單的調度問題10.1.2 huffman編碼10.1.3 近似裝箱問題10.2 分治演算法10.2.1 分治演算法的運行時間10.2.2 最近點問題10.2.3 選擇問題10.2.4 一些運算問題的理論改進10.3 動態規劃10.3.1 用一個表代替遞歸10.3.2 矩陣乘法的順序安排10.3.3 最優二叉查找樹10.3.4 所有點對最短路徑10.4 隨機化演算法10.4.1 隨機數發生器10.4.2 跳躍表10.4.3 素性測試10.5 回溯演算法10.5.1 收費公路重建問題10.5.2 博弈總結練習參考文獻第11章 攤還分析11.1 一個無關的智力問題11.2 二項隊列11.3 斜堆11.4 斐波那契堆11.4.1 切除左式堆中的節點11.4.2 二項隊列的懶惰合並11.4.3 斐波那契堆操作11.4.4 時間界的證明11. 5 伸展樹總結練習參考文獻第12章 高級數據結構及其實現12.1 自頂向下伸展樹12.2 紅黑樹12.2.1 自底向上插入12.2.2 自頂向下紅黑樹12.2.3 自頂向下刪除12.3 確定性跳躍表12.4 aa-樹12.5 treap樹12.6 k-d樹12.7 配對堆總結練習參考文獻索引
2. 《數據結構與演算法分析C語言描述》真的適合初學者嗎
C語言的基本語法你只要掌握了
數據結構都不是問題
數據結構就是 數據的組織方式 或者說 是一種更便捷的讓程序更高效的方法。這裡面用到的都是C語言的基礎知識。
就像你做飯 一個辣椒可以炒素菜、可以炒葷菜、也可以炸成辣椒油……
同樣一個東西 根據自己目的的不同 選擇一個最高效的方法 就是數據結構與演算法的目的.
書上的數據結構與演算法 只是給你一些實際應用中的列子和一些基本方法,現實中做程序還需要你自己根據自己的需要去組合去研究更好的演算法……
3. 《數據結構與演算法分析:C語言描述(原書第2版) 》這本書比起其他書,可以么看這本書需要什麼基礎
額,我想你說:「數據結構與演算法分析」魏斯寫道,正確的,這本書在豆瓣給出了9分的高分,被認為是一個非常高的分數,但計算機世界經典名曲,如浩瀚的海洋偉大的編程書籍。
Kernighan的編程做法是讓你全面了解做什麼經典,這本書是非常薄的編程。
Bentley的「編程
cormen」演算法導論「Skiena」演算法設計手冊「的分析」的數據結構和演算法更大量的是一個傑作。珍珠「(卷1和2)將帶你領略的電源的演算法。
侯捷的STL源碼分析,深入講解了C + +標准庫的實現細節,讓你真正的頂尖選手的傑作。
史蒂文斯的「UNIX水平的編程環境UNIX網路編程是程序員的高級系列,一讀再讀,因為你最終會了解你的程序運行在操作系統上,需要交互和網路,你需要了解他們,與他們友好相處。
C + +'父Bjarne Stroustrup的三大傑作:「C + +程序設計語言,C + +程序設計原理與實踐」,「C + +語言的設計和演變」C + +語言權威的指南,也是編程的經典書籍。
科比「深入理解計算機系統能夠告訴你的計算機基礎做了什麼讓你的計算機更好地了解和更好地利用CPU聖經。 BR />
經典的書,這些都是軟體開發「程序員修煉」代碼完成「重建」設計模式「,任何編程論壇成員推薦表中的程序必須看的書。
有一本書叫做計算機程序的構造和解釋,上帝的作品一樣,它可以顛覆你的編程思想。
當然,計算機演算法來計算的頂部Knuth的「計算機程序設計藝術」(1-4卷)非常困難的非常廣泛的,深刻的內容,如浩瀚的海洋,然後它是驚人的一個。
所謂術業有專攻,每個地區都有自己的經典之作,根據您的個人利益,有必要去進一步探討。如編程語言和編譯器,操作系統內核,硬體設計,人工智慧,機器學習,自然語言處理,信息理論,信號處理,網路編程,機??器人等。
4. 數據結構與演算法分析:C語言描述的內容簡介
《數據結構與演算法分析:C語言描述(原書第2版)》內容簡介:書中詳細介紹了當前流行的論題和新的變化,討論了演算法設計技巧,並在研究演算法的性能、效率以及對運行時間分析的基礎上考查了一些高級數據結構,從歷史的角度和近年的進展對數據結構的活躍領域進行了簡要的概括。由於《數據結構與演算法分析:C語言描述(原書第2版)》選材新穎,方法實用,題例豐富,取捨得當。《數據結構與演算法分析:C語言描述(原書第2版)》的目的是培養學生良好的程序設計技巧和熟練的演算法分析能力,使得他們能夠開發出高效率的程序。從服務於實踐又鍛煉學生實際能力出發,書中提供了大部演算法的C程序和偽碼常式,但並不是全部。一些程序可從互聯網上獲得。
《數據結構與演算法分析:C語言描述(原書第2版)》是《Data Structures and Algorithm Analysis in C》一書第2版的簡體中譯本。原書曾被評為20世紀頂尖的30部計算機著作之一,作者Mark Allen Weiss在數據結構和演算法分析方面卓有建樹,他的數據結構和演算法分析的著作尤其暢銷,並受到廣泛好評.已被世界500餘所大學用作教材。
在《數據結構與演算法分析:C語言描述(原書第2版)》中,作者更加精煉並強化了他對演算法和數據結構方面創新的處理方法。通過C程序的實現,著重闡述了抽象數據類型的概念,並對演算法的效率、性能和運行時間進行了分析。
全書特點如下:
●專用一章來討論演算法設計技巧,包括貪婪演算法、分治演算法、動態規劃、隨機化演算法以及回溯演算法
●介紹了當前流行的論題和新的數據結構,如斐波那契堆、斜堆、二項隊列、跳躍表和伸展樹
●安排一章專門討論攤還分析,考查書中介紹的一些高級數據結構
●新開辟一章討論高級數據結構以及它們的實現,其中包括紅黑樹、自頂向下伸展樹。treap樹、k-d樹、配對堆以及其他相關內容
●合並了堆排序平均情況分析的一些新結果
《數據結構與演算法分析:C語言描述(原書第2版)》是國外數據結構與演算法分析方面的標准教材,介紹了數據結構(大量數據的組織方法)以及演算法分析(演算法運行時間的估算)。《數據結構與演算法分析:C語言描述(原書第2版)》的編寫目標是同時講授好的程序設計和演算法分析技巧,使讀者可以開發出具有最高效率的程序。 《數據結構與演算法分析:C語言描述(原書第2版)》可作為高級數據結構課程或研究生一年級演算法分析課程的教材,使用《數據結構與演算法分析:C語言描述(原書第2版)》需具有一些中級程序設計知識,還需要離散數學的一些背景知識。
5. 數據結構與演算法分析:C語言描述的作者簡介
作者:(美國)維斯 譯者:馮舜璽
Mark Allen Weiss是佛羅里達國際大學計算機學院教授,普林斯頓大學計算機科學博士。除本書外,他編寫的關於數據結構與演算法方面的知名教材還有:Data Structures and Algorithm Analysis:in Java, Data Structures and Algonthm Analysis:in C++以及Data Structures and Problem Solving:Using Jave、Data Struchures and Problem Solving:Using C++等。他目前是AP考試計算機學科委員會的主席。現任美國佛羅里達國際大學計算與信息科學學院教授。他曾經擔任全美AP(Advanced Placement)考試計算機學科委員會的主席(2000-2004)。他的主要研究方向是數據結構、演算法和教育學。
6. 數據結構與演算法分析 有兩個版本,一個是C版本,另一個是C++描述版。他們有什麼區別呢
區別就在於:對於數據結構,如果用C語言實現鏈表結構,則只能提供一些鏈表的操作函數,無法將鏈表當成一個整體對象,而用C++則可以實現一個鏈表類,將鏈表封裝成一個整體。而對於演算法來說,則一樣,C++中的具體演算法也是用C語言實現的。