數據結構和算法無師自通

[美]科裏·奧爾索夫(Cory Althoff)

  • 數據結構和算法無師自通-preview-1
數據結構和算法無師自通-preview-1

買這商品的人也買了...

相關主題

商品描述

本書是一本介紹算法和數據結構基礎知識的入門讀物。作者通過簡單易懂的語言和示例,幫助讀者建立堅實的算法和數據結構基礎,提高編程技能和解決問題的能力。本書包含兩部分內容。第Ⅰ部分主要介紹什麼是算法、遞歸、搜索算法、排序算法、字符串算法、數學等方面的知識。第Ⅱ部分主要介紹數據結構相關知識,如什麼是數據結構、數組、鏈表、棧、隊列、哈希表、二叉樹、二叉堆、圖等方面的知識。本書提供了大量的練習題和示例代碼,幫助讀者鞏固所學知識並提高編程能力。 本書適合了解Python基礎、對計算機科學感興趣或有相關要求求職意向的人閱讀。

作者簡介

科裏·奧爾索夫(Cory Althoff)在大學主修政治學畢業後,通過自學編程知識順利進入eBay,開啟了其軟件工程師的生涯。隨後他在矽谷工作多年,現已利用技術開始了自主創業。本書是作者根據個人成功經驗所作,專為所有想要自學編程的初學者準備;即便讀者並不想成為一名專業的軟件工程師,本書也會幫助每個人在其所屬的行業中運用編程技能來提升工作能力,提高工作效率。

目錄大綱

第Ⅰ部分 算法介紹
第1章 什麼是算法
1.1 分析算法
1.2 常數時間
1.3 對數時間
1.4 線性時間
1.5 對數線性時間
1.6 平方時間
1.7 立方時間
1.8 指數時間
1.9 最佳情況與最差情況的覆雜度
1.10 空間覆雜度
1.11 為什麼這些概念很重要
1.12 詞匯
1.13 挑戰
第2章 遞歸
2.1 何時使用遞歸
2.2 詞匯
2.3 挑戰
第3章 搜索算法
3.1 線性搜索
3.2 何時使用線性搜索
3.3 二分搜索
3.4 何時使用二分搜索
3.5 搜索字符
3.6 詞匯
3.7 挑戰
第4章 排序算法
4.1 冒泡排序
4.2 何時使用冒泡排序
4.3 插入排序
4.4 何時使用插入排序
4.5 歸並排序
4.6 何時使用歸並排序
4.7 Python中的排序算法
4.8 詞匯
4.9 挑戰
第5章 字符串算法
5.1 異構詞檢測
5.2 回文詞檢測
5.3 最後一個數碼
5.4 凱撒密碼
5.5 詞匯
5.6 挑戰
第6章 數學
6.1 二進制
6.2 位運算符
6.3 FizzBuzz
6.4 最大公約數
6.5 歐幾裏得算法
6.6 質數
6.7 詞匯
6.8 挑戰
第7章 自學的激勵:瑪格麗特·漢密爾頓
第Ⅱ部分 數據結構
第8章 什麼是數據結構
8.1 詞匯
8.2 挑戰
第9章 數組
9.1 數組的性能
9.2 創建數組
9.3 移動零
9.4 組合兩個列表
9.5 尋找列表中的重覆元素
9.6 求兩個列表的交集
9.7 詞匯
9.8 挑戰
第10章 鏈表
10.1 鏈表的性能
10.2 創建鏈表
10.3 在鏈表中搜索
10.4 從鏈表中刪除節點
10.5 反轉鏈表
10.6 尋找鏈表中的循環
10.7 詞匯
10.8 挑戰
第11章 棧
11.1 何時使用棧
11.2 創建棧
11.3 利用棧反轉字符串
11.4 最小棧
11.5 括號的棧
11.6 詞匯
11.7 挑戰
第12章 隊列
12.1 何時使用隊列
12.2 創建隊列
12.3 Python內置的隊列類
12.4 用兩個棧實現隊列
12.5 詞匯
12.6 挑戰
第13章 哈希表
13.1 何時使用哈希表
13.2 字符串中的字符
13.3 兩數之和
13.4 詞匯
13.5 挑戰
第14章 二叉樹
14.1 何時使用樹
14.2 創建二叉樹
14.3 樹的寬度優先遍歷
14.4 其他樹遍歷方法
14.5 反轉二叉樹
14.6 詞匯
14.7 挑戰
第15章 二叉堆
15.1 何時使用堆
15.2 創建堆
15.3 連接繩子的最小成本
15.4 詞匯
15.5 挑戰
第16章 圖
16.1 何時使用圖
16.2 圖的創建
16.3 迪傑斯特拉算法
16.4 詞匯
16.5 挑戰
第17章 自學的激勵:埃隆·馬斯克
第18章 下一步
18.1 接下來做什麼
18.2 爬上自由職業的梯子
18.3 如何獲得面試機會
18.4 如何準備技術面試
18.5 補充資源
18.6 最後的話