作 者:(巴西)沃德斯頓·費雷拉·菲爾多 著 蔣楠 譯
定 價:49
出 版 社:人民郵電出版社
出版日期:2019年01月01日
頁 數:168
裝 幀:平裝
ISBN:9787115499196
計算機科學無處不在,但傳統教材枯燥無趣,致使很多程序員從未深入研究過這一對於實現高效程序設計至關重要的學科,也將很多對此話題感興趣的非程序員擋在了門外。本書以簡明扼要的形式介紹計算機科學知識,淺顯易懂,既適合程序員鞏固編程基礎,也適合普通人了解計算機科學和計算思維。- 梳理了求解問題所需的基本數學知識,將想法轉換為可供計算機執行的解決方案- 介紹了復雜度,借由時間復雜度與空間復雜度分析評估算法性能- 算法設計中使用的主要策略- 數據結構與抽像數據類型,以及它們如何影響很常見的數據操等
●第1章 預備知識 1
1.1 想法 1
1.1.1 流程圖 2
1.1.2 偽代碼 3
1.1.3 數學模型 4
1.2 邏輯 5
1.2.1 運算符 6
1.2.2 布爾代數 8
1.2.3 真值表 9
1.2.4 邏輯在計算中的應用 12
1.3 計數 13
1.3.1 乘法 13
1.3.2 排列 14
1.3.3 具有相同項的排列 15
1.3.4 組合 16
1.3.5 求和 17
1.4 概率 19
1.4.1 對結果計數 19
1.4.2 獨立事件 20
1.4.3 互斥事件 20
1.4.4 對立事件 21
1.4.5 賭徒謬誤 21
1.4.6 高級概率 21
1.5 小結 22
第2章 復雜度 23
2.1 時間計算 25
2.2 大O 符號 28
2.3 指數 29
2.4 內存計算 30
2.5 小結 31
第3章 策略 33
3.1 迭代 33
3.2 遞歸 36
3.3 蠻力法 38
3.4 回溯法 40
3.5 啟發法 43
3.5.1 貪心法 43
3.5.2 利用貪心法求解電網問題 45
3.6 分治法 46
3.6.1 利用分治法求解排序問題 46
3.6.2 利用分治法求解很好交易問題 49
3.6.3 利用分治法求解背包問題 50
3.7 動態規劃 51
3.7.1 利用記憶化求解斐波那契數 52
3.7.2 利用記憶化求解背包問題 52
3.7.3 利用自底向上法求解很好交易問題 53
3.8 分支定界法 54
3.8.1 上界與下界 55
3.8.2 背包問題中的上界與下界 56
3.9 小結 58
第4章 數據 59
4.1 抽像數據類型 60
4.2 常見抽像 62
4.2.1 基本數據類型 62
4.2.2 棧 62
4.2.3 隊列 63
4.2.4 優先隊列 63
4.2.5 列表 64
4.2.6 排序列表 64
4.2.7 映射 65
4.2.8 集合 65
4.3 數據結構 65
4.3.1 數組 66
4.3.2 鏈表 67
4.3.3 雙向鏈表 68
4.3.4 數組與鏈表的比較 68
4.3.5 樹 69
4.3.6 二叉查找樹 70
4.3.7 二叉堆 73
4.3.8 圖 74
4.3.9 散列表 74
4.4 小結 75
第5章 算法 77
5.1 排序 77
5.2 搜索 79
5.3 圖 80
5.3.1 圖的搜索 80
5.3.2 圖著色 83
5.3.3 尋路 83
5.3.4 PageRank 86
5.4 運籌學 86
5.4.1 線性很優化問題 87
5.4.2 網絡流問題 88
5.5 小結 89
第6章 數據庫 91
6.1 關繫數據庫 92
6.1.1 關繫 92
6.1.2 模式遷移 95
6.1.3 SQL 95
6.1.4 索引 97
6.1.5 事務 99
6.2 非關繫數據庫 99
6.2.1 文檔存儲 100
6.2.2 鍵值對存儲 101
6.2.3 圖數據庫 102
6.2.4 大數據 103
6.2.5 SQL 與NoSQL 的比較 103
6.3 分布式數據庫 104
6.3.1 單主機復制 104
6.3.2 多主機復制 105
6.3.3 分片 105
6.3.4 數據一致性 107
6.4 地理數據庫 107
6.5 序列化格式 108
6.6 小結 109
第7章 計算機 111
7.1 體繫結構 111
7.1.1 存儲器 112
7.1.2 CPU 114
7.2 編譯器 118
7.2.1 操作繫統 121
7.2.2 編譯優化 121
7.2.3 腳本語言 122
7.2.4 反彙編與逆向工程 123
7.2.5 開源軟件 124
7.3 存儲器層次結構 125
7.3.1 處理器與存儲器之間的鴻溝 125
7.3.2 時間局部性與空間局部性 126
7.3.3 一級緩存 127
7.3.4 二級緩存 127
7.3.5 第一級存儲器與第二級存儲器 128
7.3.6 外部存儲器與第三級存儲器 130
7.3.7 存儲技術的發展趨勢 130
7.4 小結 131
第8章 程序設計 133
8.1 語言學 133
8.1.1 值 134
8.1.2 表達式 134
8.1.3 語句 135
8.2 變量 136
8.2.1 變量類型 136
8.2.2 變量作用域 137
8.3 範式 138
8.3.1 命令式編程 138
8.3.2 聲明式編程 140
8.3.3 邏輯編程 144
8.4 小結 145
附錄 147
結語 151
後記 152
本書面向所有對計算機科學感興趣的讀者,以淺顯易懂的語言和簡明扼要的形式介紹計算機科學領域的重要知識點,盡量少涉及學術概念,著力將抽像理論具體化,復雜問題簡單化,既適合計算機專業技術人員查漏補缺基本理論,也適合普通讀者了解計算思維。