計算機科學精粹

計算機科學精粹

作者: [巴西]沃德斯頓·費雷拉·菲爾多

ISBN: 9787115499196 出版時間: 2019-01-01

出版社: 人民郵電出版社

關注公衆號

推薦關注公衆號

公衆號每日會推送免費電子書,推薦大家關注。

請掃碼關注微信公衆號,或者公衆號搜索“ebookcn”

如有問題需聯系,也請關注公衆號,聯系方式均在公衆號提供。

本書面向所有對計算機科學感興趣的讀者,以淺顯易懂的語言和簡明扼要的形式介紹計算機科學領域的重要知識點,盡量少涉及學術概念,着力将抽象理論具體化,複雜問題簡單化,既适合計算機專業技術人員查漏補缺基本理論,也适合普通讀者了解計算思維。· 第1章 預備知識  1 1.1 想法  1 1.1.1 流程圖  ...

本書面向所有對計算機科學感興趣的讀者,以淺顯易懂的語言和簡明扼要的形式介紹計算機科學領域的重要知識點,盡量少涉及學術概念,着力将抽象理論具體化,複雜問題簡單化,既适合計算機專業技術人員查漏補缺基本理論,也适合普通讀者了解計算思維。·
第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