C語言常用算法分析

C語言常用算法分析

《C語言常用算法分析》是2012年1月清華大學出版社出版的圖書,作者是明日科技。本書內容詳盡,實例豐富,非常適合作為零基礎人員的學習用書和大中專院校師生的學習教材,也適合作為相關培訓機構的師生和軟體開發人員的參考資料。

內容簡介

本書共分為4篇,第1篇為算法基礎篇,包括程式之魂——算法、數據結構基礎、查找與排序算法、基本算法思想等內容;第2篇為常用算法篇,包括數學算法、矩陣與數組問題、經典算法等內容;第3篇為趣味算法篇,包括數學趣題、邏輯推理題等內容;第4篇為算法競技篇,包括計算機等級考試算法實例、程式設計師考試算法實例、信息學奧賽算法實例等內容。

本書提供了大量的自學視頻、源程式、素材,提供了相關的模組庫、案例庫、素材庫、題庫等多種形式的輔助學習資料,還提供迅速及時的微博、QQ、論壇等技術支持。

目錄

第1篇 算法基礎篇

第1章 程式之魂——算法

( 自學視頻、源程式:

配套資源\mr\01\) 2

1.1 魂之說 3

1.2 算法的特性 4

1.3 算法的表示方式 5

1.3.1 用自然語言描述算法 5

1.3.2 用流程圖描述算法 5

1.3.3 用N-S圖描述算法 8

1.3.4 用計算機語言描述算法 9

1.4 算法性能分析與度量 10

1.4.1 算法的性能指標 10

1.4.2 算法效率的度量 10

1.4.3 算法的時間複雜度 11

1.4.4 算法的空間複雜度 12

1.5 學習算法的原因 12

第2章 數據結構基礎

( 自學視頻、源程式:

配套資源\mr\02\) 13

2.1 數據結構概述 14

2.1.1 數據結構的發展 14

2.1.2 數據結構的研究對象 14

2.1.3 數據結構與算法的關係 16

2.2 數據結構的基本概念 16

2.3 C語言常見數據結構 18

2.3.1 數組 18

2.3.2 結構體 20

2.3.3 鍊表 21

2.3.4 棧 23

2.3.5 佇列 24

第3章 查找與排序算法

( 自學視頻、源程式:

配套資源\mr\03\) 26

3.1 查找算法 27

3.1.1 順序查找 27

3.1.2 折半查找 29

3.1.3 分塊查找 31

3.1.4 哈希查找 33

3.2 排序算法 38

3.2.1 選擇排序 38

3.2.2 冒泡排序 40

3.2.3 直接插入排序 43

3.2.4 歸併排序 45

3.2.5 希爾排序 48

3.2.6 快速排序 49

3.2.7 各種排序算法的比較 52

第4章 基本算法思想

( 自學視頻、源程式:

配套資源\mr\04\) 54

4.1 遞歸的概念和分治法 55

4.1.1 遞歸的概念 55

4.1.2 遞歸的套用——漢諾塔 55

4.1.3 分治法的基本思想 56

4.1.4 分治法的套用——棋盤覆蓋

問題 57

4.2 動態規劃法 59

4.2.1 動態規劃法的基本思想 59

4.2.2 動態規劃的套用——最大

子段和 60

4.3 貪心算法 61

4.3.1 貪心算法的基本概念 61

4.3.2 貪心算法的套用——哈夫

曼編碼 62

4.4 回溯法 67

4.4.1 回溯法的基本思想 67

4.4.2 回溯法的套用——連續

郵資問題 68

4.5 分支限界法 70

4.5.1 分支限界法的基本思想 71

4.5.2 分支限界法的套用——旅行

售貨員問題 71

第2篇 常用算法篇

第5章 數學算法

( 自學視頻、源程式:

配套資源\mr\05\) 76

5.1 隨機數求π 77

5.2 常態分配的成績 82

5.3 繪製最小圓 86

5.4 滿意的一元二次方程解 93

5.5 計算定積分 101

5.6 分解質因數 103

5.7 最大公約數和最低公倍數 106

5.8 數字的全排列 109

5.9 遞推化梯形法求解定積分 111

5.10 疊代法開平方運算 115

5.11 牛頓切線法解方程 117

5.12 改進歐拉方法求解微分方程 119

5.13 疊代法求解線性方程組 123

5.14 計算貸款利息 127

5.15 分數計算器 129

第6章 矩陣與數組問題

( 自學視頻、源程式:

配套資源\mr\06\) 132

6.1 “脫殼”組數 133

6.2 尋找矩陣中的“鞍點” 135

6.3 魔幻方陣 137

6.4 矩陣的轉置運算 139

6.5 勾股數組 141

6.6 百燈判熄 143

6.7 巧排螺旋數陣 144

6.8 猜數四問 146

第7章 經典算法

( 自學視頻、源程式:

配套資源\mr\07\) 149

7.1 約瑟夫環 150

7.2 八皇后問題 152

7.3 0-1背包問題 156

7.4 斐波那契數列 159

7.5 尋找水仙花數 161

7.6 愛因斯坦階梯問題 162

7.7 進制轉換算法 163

7.8 哥德巴赫猜想 165

7.9 驗證四方定理 167

7.10 尼科徹斯定理 168

7.11 角谷猜想 170

7.12 prim算法求最小生成樹 171

7.13 迪傑斯特拉算法 174

第3篇 趣味算法篇

第8章 數學趣題

( 自學視頻、源程式:

配套資源\mr\08\) 178

8.1 警察抓犯人 179

8.2 舍罕王的失算 181

8.3 百錢買百雞問題 183

8.4 三色球問題 185

8.5 填數字遊戲 187

8.6 漁夫捕魚問題 190

8.7 移數字遊戲 191

8.8 數字翻譯器 194

8.9 猴子吃桃問題 198

8.10 馬克思手稿中的數學題 199

8.11 判斷回文式素數 200

8.12 完全數 204

8.13 自守數 206

8.14 一數三平方數 207

8.15 古稀數 209

8.16 親和數 213

8.17 對調數 215

第9章 邏輯推理題

( 自學視頻、源程式:

配套資源\mr\09\) 218

9.1 魔術師的秘密 219

9.2 婚禮上的謊言 220

9.3 誰講了真話 222

9.4 白紙與黑紙 223

9.5 判斷壞球 224

9.6 打漁曬網問題 229

9.7 水池注水問題 231

9.8 尋找假幣 232

9.9 常勝將軍 234

9.10 巧算國王分財物 236

9.11 商人渡河問題 237

9.12 馬踏棋盤 243

9.13 猜杏核 246

第4篇 算法競技篇

第10章 計算機等級考試算法實例

( 自學視頻、源程式:

配套資源\mr\10\) 250

10.1 數組的下三角置數 251

10.2 查找單鍊表的結點 252

10.3 二維數組的元素排序 254

10.4 尋找二維數組的最大值 256

第11章 程式設計師考試算法實例

( 自學視頻、源程式:

配套資源\mr\11\) 258

11.1 電話計費算法 259

11.2 處理鍊表的重複元素 261

11.3 劇場方形空位 263

11.4 數組的數值操作 265

11.5 三位數生成迴文數 267

第12章 信息學奧賽算法實例

( 自學視頻、源程式:

配套資源\mr\12\) 269

12.1 我知你心 270

12.2 格雷碼 272

12.3 狡猾的狐狸遇上聰明的兔子 275

12.4 6174問題 276

12.5 韓信點兵 279

12.6 楊輝三角 281

12.7 開關燈問題 284

12.8 蛇形方陣 286

前言

算法被稱為程式設計的靈魂,也是學習編程的必備知識,因此被許多高等院校計算機專業列為必修課程。一個優秀的程式需要合理的數組組織和高效清晰的算法,這也是程式設計要研究的主要內容。

本書內容

本書根據算法學習的步驟編排章節。全書共分為4篇,第1篇為算法基礎篇,介紹了學習算法需要掌握的一些基礎知識,包括程式之魂——算法、數據結構基礎、查找和排序方法、基本算法思想等部分;第2篇為常用算法篇,列舉了在編程中經常用到的一些算法,使讀者了解一些常用算法的實現方法,包括數學算法、矩陣與數組問題、經典算法等算法;第3篇為趣味算法篇,列舉了一些經典的趣味算法,能夠激起大家的學習興趣,在趣味中掌握算法精髓,包括數學趣題、邏輯推理題等算法;第4篇為算法競技篇,通過不同的類型的算法實例使大家了解實戰算法,包括計算機等級考試算法實例、程式設計師考試算法實例、信息學奧賽算法實例等內容。

為了更清晰地闡述算法和給出算法的設計思路,本書設定了以下欄目:

? 算法說明

對算法的具體要求和實現的功能進行說明。

? 算法分析

根據算法要求及要實現的功能進行分析,詳細介紹實現的思路和方法。

? 實現過程

通過程式來實現算法,給出具體的實現過程和實現算法的完整代碼。

本書特點

本書具有以下特點。

* 循序漸進

本書從算法基礎講起,介紹算法的基本知識和常用的算法思想,逐層深入,由淺入深。

* 舉例豐富

列舉了程式設計和套用中的常用算法,使讀者能夠通過各種算法的學習而掌握實際開發的思路。

* 趣味實用

本書專門添加了趣味算法篇,列舉生活中的一些趣味算法,使讀者能夠更有興趣地學習,在娛樂中進步。

* 競技實戰

本書添加了各種計算機考試的算法實例,使讀者在實戰中提升。

本書配套資源

本書提供了內容豐富的配套資源,包括自學視頻、源程式、素材,以及模組庫、案例庫、題庫、素材庫等多項輔助內容,讀者朋友可以通過如下方式獲取。

第1種方式:

(1)登錄清華大學出版社的網站,在網頁右上角的搜尋文本框中輸入本書書名(注意區分大小寫和留出空格),或者輸入本書關鍵字,或者輸入本書ISBN號(注意去掉ISBN號間隔線“-”),單擊“搜尋”按鈕。

(2)找到本書後單擊超連結,在該書的網頁下側單擊“網路資源”超連結,即可下載。

第2種方式:

訪問本書的新浪微博:C語言圖書,找到配套資源的連結地址進行下載。

配套資源目錄如下圖所示。

讀者對象

本書非常適合以下人員閱讀。

? 從事編程行業的開發人員

? 有一定語言基礎,想進一步提高技能的人員

? 大中專院校的老師和學生

? 即將走上工作崗位的大學畢業生

? 相關培訓機構的老師和學員

? 編程愛好者

相關詞條

相關搜尋

熱門詞條

聯絡我們