38868,37399

宏基資料結構與演算法(C/C++) V5.0

宏基資料結構與演算法(C/C++) V5.0

您的評分:


出版日期:2014/11/08
出版:宏利 / 宏利出版社
作者:陳 同 利
語言:繁體中文(台灣)
檔案格式:PDF
頁數:738

零售

零售
)檢舉
免費試閱
嵌入閱讀器至您的網頁

內容簡介

本書以拙作『資料結構、演算法與應用程式設計』為基礎精編而成。為了響應支持『節能減碳愛地球,減少樹木的砍伐』,本書只出版電子書,沒出版紙本書。本書為一本理論探討很深入,並具有創意的資料結構、演算法書籍,專門提供給對軟體設計有興趣,想在程式設計方面奠定宏偉基礎者。
熟悉資料結構、演算法者,所設計的程式一定是有條不紊,並且通常會講求程式的執行效率,印度等國家在高中、職已經開設資料結構課程。要熟悉資料結構與演算法,並不是單讀一本書就可以,是要參考許多的相關書籍,這是非常耗費時間及金錢的,對於課業或工作繁忙的讀者,幾乎是一件很難做到的事情,作者公費在國外進修的這段期間,多方搜集歐美各國專家學者所發表的有關資料結構與演算法之文獻與著作,精心編著成此書,其主要目的是希望讀者研讀資料結構與演算法時能夠事半功倍,並提高學習的興趣與信心。
如果能熟讀這本書,不但可以讓讀者節省許多寶貴的時間與金錢,並且可以減少撰寫程式及閱讀這方面的書籍時,那種久久想不出解決方法的焦慮與挫折感。
因為C++語言不但功能非常強大而且很富彈性,世界上以C++語言設計的程式庫及應用程式最多,這是JAVA(具多產性)及C#有所不及的,並且C++語言也不斷地進步,已經有功能更強的新C++語言問世,最新的Visual Studio 2013具有多種版本,可用於設計網路軟體、Windows 市集APP、Windows Phone、Windows Form等軟體,應用很廣無法一一詳述,這也是本書採用C/C++的主因。
本書對於解決各種問題的演算法與資料結構有非常詳細的說明,參考本書的演算法,讀者也可以使用各種程式語言,寫出功能強大的程式。
本書附有3種C/C++的範例程式(Dev-C++,Visual C++,OpenCV),所有程式皆經過多次的測試,附錄有實用的Dev C++ 5.x及Visual C++ 2010 Express的安裝與使用,除了附有Dev C++ 5.x繪圖的範例程式,並附有可在最新的Windows 8.1作業系統之下,使用Visual Studio 2013 Express for Windows Desktop繪圖的Visual C++程式範例,本書的範例程式適用於Dev-C++ v5.x及Visual C++ 2010 Express、Visual C++ 2012 Express、Visual Studio 2013 Express for Windows Desktop。
本書注重實用的演算法,目的是希望讀者熟讀本書之後,立刻可以自己設計、除錯及改良程式。本書中也包括解決各種問題的演算法,並以範例程式實際演練,範例程式的運作並有非常詳細的解說。本書以各種精美、獨特的彩色圖形來說明資料結構、演算法,有些圖形瀏覽完以後,對於問題的解決方法即有一個概念。演算法的執行效率除了以數學推演來說明外,並且以實際的執行結果評估其優劣。對於一些科技、教育上的應用,本書也有介紹,例如衛星遙測影像的幾何校正,矩陣在並行處理上的應用,以及將檔案資料壓縮等。
本書共有十八章,每章皆很精彩、有深度,並且內容非常豐富,以下只列出一些章節:第8章介紹各種排序,第二種改良的快速排序函數,除了使用插入排序,與使用三個元素的中間值做為分割的中樞外,並且移除了函數尾端的部分遞迴,減少堆疊空間的使用,排序一千萬個隨機數整數,只需要2.47秒。用學測成績排序來說明間接排序法,以各科成績的總分作為比較鍵,將5萬個考生的成績依由大而小的順序排序,只需要40毫秒;本章並介紹快速選取資料的方法,由5萬個隨機數整數中,選取第2萬大的元素,執行時間只需要1.515毫秒。第9章外部排序介紹雙路合併、三路合併及十路合併排序的演算法,並完成各種程式設計。每筆考生成績記錄包括考號、國文、數學、英文等五科成績及總分,將一百萬個參加大學入學甄試的考生成績,依由大而小的順序排序所需的時間只要3.3秒。第16章介紹矩陣在影像處理上的應用,衛星遙測影像經常會產生幾何失真,在利用這些衛星影像以前,必須先經過幾何校正。一個原本失真的影像經過重採樣及插值,即可轉變成一個不失真的校正影像,本章並完成影像處理的程式設計。矩陣在並行處理上的應用中,介紹將幾部電腦連線,共同解決一個相同的問題,以縮短資料處理的時間。將8部電腦連線,將影像水平分割成8個相等的部分,使用插值方法,做遙測影像幾何校正的並行處理,本章並完成並行處理的程式設計。第18章資料壓縮介紹哈夫曼編碼法、掃描長度編碼法與LZW編碼法三種演算法,並完成三種編碼法的程式設計,各種編碼法的演算法與程式運作也有非常詳盡的說明。
本書適合大學資訊、理工、商、農、醫等科系選修電腦課程的學生,做為教科書或參考書之用。對於軟體設計有興趣的高中、職學生及欲參加政府公務人員考試或軟體設計檢定考試的人員,本書也可做為參考進修之用。

章節目錄

目錄摘要

第1章 概論
1.1 概說1.2 結構化的程式設計1.3 開發程式的方法1.4 使用之程式語言
1.5 基本資料結構1.6 C++基本觀念1.7別名1.8搖擺指標1.9 類(class)的設計1.10 樣板1.11 動態記憶體配置
第2章 演算法複雜度分析
2.1簡介2.2 Ο符號觀念2.3 Ο符號定義2.4 實際分析演算法的複雜度
第3章 靜態資料結構
3.1 單純型資料結構3.2 結構型資料結構3.2.1 陣列3.2.2 以陣列為函數引數
3.2.3 求多項式值3.2.4 字串3.2.5 二維陣列3.2.6多維陣列3.2.7 結構
3.2.8 傳結構給函數3.2.9 聯合
第4章 動態資料結構
4.1 堆疊 4.2 中序、後序和前序 4.2.1 基本定義 4.2.2 中序式轉換成後序式的程式
4.2.3 後序運算式的計算方法4.3 串列結構4.4 用單鏈接串列製作堆疊4.5 佇列
4.7 多項式的加法4.8 多項式的乘法4.9 循環鏈接串列4.9.1 以循環鏈接串列製作堆疊
4.9.2 以循環鏈接串列製作佇列4.9.3 約瑟夫斯問題4.10 雙鏈接串列
4.10.1 由雙鏈接串列中刪除項目4.10.2 插入項目到雙鏈接串列中
4.10.3 以雙鏈接串列做長整數的加法4.10.4 以雙鏈接串列做長整數的乘法
第5章 遞迴理論與應用
5.1 遞迴5.2 階乘函數5.3 費布那西數列5.4 遞迴方法應用於電腦繪圖
5.4.6 遞迴方法應用於數學運算的實例5.4.7 將遞迴函數改成使用疊代法的函數
5.4.8 河內塔問題5.4.9 用遞迴方法化前序式為後序式
第6章 樹狀結構
6.1 二元樹6.1.1 二元樹的製作6.1.2 二元樹的走訪6.1.3 層序走訪
6.1.4 以遞迴法走訪二元樹6.1.5 以非遞迴法走訪二元樹6.1.6 建立二元表式樹
6.1.7 以二元表式樹求值6.2 二元搜尋樹6.2.1 二元搜尋樹的建立
6.2.2 二元搜尋樹的搜尋運算6.2.3 二元搜尋樹的插入運算
6.2.4 二元搜尋樹的刪除運算6.2.5 二元搜尋樹的效率
6.3 穿線二元樹6.4 平衡二元搜尋樹 AVL樹6.4.1 單旋轉6.4.2 雙重旋轉
6.4.3 利用插入及旋轉建立一個AVL樹6.4.4 AVL樹的完成
6.5 自己調整高度的二元搜尋樹 展開樹6.5.2 展開樹的搜尋、插入及刪除函數
第7章 優先佇列
7.1 優先佇列的製作7.2 堆樹7.3 堆樹演算法7.4 k-堆樹7.5 左翼堆樹7.6 斜堆樹
7.7 二項式佇列
第8章 內部排序
8.1 基本觀念8.2 氣泡排序8.3 直接選擇排序8.4 插入排序8.4.1 線性插入排序
8.5 希爾排序8.6 二元樹排序8.7 合併排序8.8 基數排序8.8.1 基數交換排序
8.9 堆排序8.10 快速排序8.10.1 基本的快速排序8.10.2 改良的快速排序
8.10.3 快速選取資料的方法8.11 間接排序法8.12 實際測試各種排序法的執行時間
第9章 外部排序
9.1 外部排序9.2 雙路合併排序9.3 平衡的多路合併9.3.1 三路合併排序的程式設計
9.3.2 十路合併排序的程式設計
第10章 基本搜尋方法
10.1 概念10.2 循序搜尋
10.2.3 索引順序搜尋 338
10.3 二元搜尋10.4 內插順序搜尋10.5 字串搜尋
第11章 雜湊法
11.1 雜湊法11.2 雜湊函數11.3 開放散列法11.4 封閉散列法11.4.1 線性探測
11.4.2 二次的探測11.4.3 雙重散列定址法11.5 重散列11.6 有序散列表
11.7 使用雜湊表的字串搜尋11.8 散列定址法的選用
第12章 平衡樹
12.1 多路樹12.2 2 -3樹與2 -4樹12.3 2 -3 -4樹各種運算12.4 紅黑樹12.5 紅黑樹的建立
12.6 紅黑樹的搜尋12.7 紅黑樹的插入運算12.8 紅黑樹的刪除運算12.9 紅黑樹的效率
12.10 檢索樹(Trie樹) 12.10.1 拼字檢查檢索樹的插入12.10.2 拼字檢查檢索樹的搜尋
第13章 圖形演算法
13.1 圖形基本觀念13.2 圖形正式的定義13.3 圖形表示13.4 圖形的搜尋
13.4.1 深度優先搜尋13.4.2 廣度優先搜搜尋13.5 邊的插入函數13.6 邊的刪除函數
13.7 有向圖形13.8 拓樸排序13.9 最短路徑13.9.1 非加權最短路徑13.9.2 加權最短路徑
13.9.3 兩點間的路徑13.9.4 所有頂點對的最短路徑13.10 最佳化二元搜尋樹
13.11 工作網絡13.12 雙連接性13.13 強連成分13.14 合併尋找演算法13.14.3 路徑壓縮
13.15 最小跨距樹13.15.1普里姆演算法13.15.2克魯斯克爾演算法13.16 流動網絡問題
13.17 配對問題
第14章 B -樹與B+樹
14.1 簡介14.2 索引順序存取方法14.3 B -樹14.3.1 B -樹的插入14.3.2 B -樹的刪除
14.3.3 B -樹的搜尋 14.3.4 B -樹的效率14.4 B+ 樹14.5 可擴充散列法
第15章 隨機數
15.1 概論15.2 線性同餘法15.3 加同餘法15.4 隨機數特性測試
第16章 向量及矩陣
16.1 向量及矩陣16.1.1 矩陣的基本運算16.1.2 矩陣的連乘16.2 高斯消去法
16.3 矩陣在影像處理上的應用16.4 矩陣在並行處理上的應用
第17章 積分程式
17.1 長方形法17.2 梯形法17.3 合成法17.4 辛普森規則
17.5 具有無限大的範圍或異常點的積分17.5.1 具有無限大的範圍的積分
17.5.2 具有異常點的積分17.6 雙重積分
第18章 資料壓縮法
18.1 資料壓縮概說18.2 哈夫曼編碼法18.2.1 哈夫曼編碼法的演算法
18.2.2 哈夫曼編碼法程式的完成18.3 掃描長度編碼法18.4 LZW編碼法
18.4.1 LZW編碼18.4.2 LZW解碼
附錄
【習題解答】
【DevC++安裝與使用】
1 安裝 2 建立新專案、編譯與執行 3 開啟舊專案 4 將檔案加入專案
5 除錯 6 Dev-C++其他設定 7 Dev-C++使用OpenCV 繪圖
8 Dev-C++使用WinBGIm 的 graphic.h 繪圖 9 其他編譯器的裝設 10 結論
【Visual C++ 2010 Express安裝與使用】
1 安裝 2 建立新專案 3 編譯及執行C++程式
4 下載Help Library 管理員 5 偵錯 6 繪圖
7 編譯及執行C程式 8 將不同資料夾的標頭檔(header)包含進來
9 建立一個簡單的Windows Form
【如何使用本電子書】【如何使用範例程式】
【參考文獻】【版權頁】

作者介紹

學歷 : Asian Institute of Technology
Computer Science 碩士、博士班
著作 : 計算機應用
演算法、資料結構與程式設計應用(使用C/C++)
資料結構、演算法與應用程式設計(使用C/C++)
宏基資料結構與演算法(C/C++)
精研資料結構(C/C++)
精讀資料結構、演算法(C/C++)
宏基資料結構與演算法(C/C++) 2版
宏基資料結構與演算法(C/C++) v3.0
精研資料結構(C/C++) v2.0
精讀資料結構、演算法(C/C++) v2.0
宏基資料結構與演算法(C/C++) v4.0
精研資料結構(C/C++) v3.0
精讀資料結構、演算法(C/C++) v3.0
宏基資料結構與演算法(C/C++) v5.0
精研資料結構(C/C++) v4.0
精讀資料結構、演算法(C/C++) v4.0

留言Facebook 留言

顯示更多