內容簡介
★★★用手機掃描書中 QR Code 立即觀看演算法動畫!★★★
⦿ 一圖一步驟,帶你打開演算法的黑箱!
⦿ 全彩超圖解,將抽象的演算法視覺化!
⦿ 內容淺顯易懂,沒有長篇難懂的理論!
「演算法」給人的第一印象就是好難學、理論好多,即使讀完千字文還是看不懂!o(〒﹏〒)o
沒錯!小編非常有同感,第一次接觸演算法時,就被「時間複雜度」弄得暈頭轉向,我一點也不想知道這些數學式是怎麼推導的啊,只要知道哪個演算法比較快、比較好用就可以了!還有,常遇到同一個詞有不同說法,在 Google 搜尋時就會搞不清楚是不是指同一件事,例如 Binary Tree Traversal,就有「二元樹追蹤、二元樹訪問、二元樹走訪、二元樹遍歷……」,這麼多種稱呼,實在讓人困惑!所以本書的專有名詞除了標示中文外,也會加上英文,以便讀者查詢更多資訊。
透過本書一圖一步驟地拆解演算法背後的原理,我終於弄懂演算法的運作了,其實演算法沒有想像中那樣神秘、可怕,而是有規則可循的。看懂其運作原理後,由衷佩服這些設計演算法的人,原來他們是這樣思考與拆解問題的啊,我怎麼都沒想到呢!
本書收錄許多知名的演算法與資料結構,其中有些演算法已經被主流的程式語言編寫成方便使用的「函式庫」。不過「函式庫」是一種將工作原理藏在內部的「黑箱」,因此大多數人在使用時不見得對演算法有充分的理解。想要寫出執行效能佳的程式,得確實理解演算法的工作原理才行。
本書介紹的資料結構與演算法
✪陣列的查詢:
互換元素╱尋找最大值╱互換排序╱合計╱最小元素值╱最小元素位置╱線性搜尋法╱二元搜尋法
✪排序:
反轉╱插入╱合併╱分割╱氣泡排序法╱選擇排序法╱插入排序法╱合併排序法╱快速排序法╱堆積排序法╱計數排序法╱希爾排序法
✪與整數相關的演算法:
埃拉托斯特尼篩法╱輾轉相除法
✪資料結構:
堆疊╱佇列╱雙向鏈結串列╱雜湊表
✪陣列的計算:
累積和╱一維累積和的應用╱二維累積和的應用
✪堆積:
Up Heap╱Down Heap╱建立堆積╱優先佇列
✪二元樹的走訪:
前序走訪╱後序走訪╱中序走訪╱層序走訪
✪其他:
廣度優先搜尋╱卡恩演算法╱深度優先搜尋╱Tarjan 演算法╱Union By Rank╱Union-Find Tree╱普林演算法╱克魯斯克爾演算法╱戴克斯特拉演算法╱貝爾曼 - 福特演算法╱弗洛伊德演算法╱包裹法╱葛立恆掃描法╱安德魯演算法╱線段樹:RMQ╱線段樹:RSQ╱二元搜尋樹╱旋轉╱樹堆……
本書特色:
★ 觀看【演算法動畫】同時搭配書中的原理說明,讓學習效果翻倍!
★ 收錄【61 個經典的演算法+資料結構】,讓你活化思維並提升邏輯思考力!
★ 【豐富的圖解及圖示設計】將抽象的演算法視覺化,易讀易學好吸收!
★ 逐步拆解演算法的運作原理、解析執行效率及優缺點,突破盲點、顛覆思考。
★ 沒有難懂的數學推導及長篇理論說明,降低學習門檻!
⦿ 一圖一步驟,帶你打開演算法的黑箱!
⦿ 全彩超圖解,將抽象的演算法視覺化!
⦿ 內容淺顯易懂,沒有長篇難懂的理論!
「演算法」給人的第一印象就是好難學、理論好多,即使讀完千字文還是看不懂!o(〒﹏〒)o
沒錯!小編非常有同感,第一次接觸演算法時,就被「時間複雜度」弄得暈頭轉向,我一點也不想知道這些數學式是怎麼推導的啊,只要知道哪個演算法比較快、比較好用就可以了!還有,常遇到同一個詞有不同說法,在 Google 搜尋時就會搞不清楚是不是指同一件事,例如 Binary Tree Traversal,就有「二元樹追蹤、二元樹訪問、二元樹走訪、二元樹遍歷……」,這麼多種稱呼,實在讓人困惑!所以本書的專有名詞除了標示中文外,也會加上英文,以便讀者查詢更多資訊。
透過本書一圖一步驟地拆解演算法背後的原理,我終於弄懂演算法的運作了,其實演算法沒有想像中那樣神秘、可怕,而是有規則可循的。看懂其運作原理後,由衷佩服這些設計演算法的人,原來他們是這樣思考與拆解問題的啊,我怎麼都沒想到呢!
本書收錄許多知名的演算法與資料結構,其中有些演算法已經被主流的程式語言編寫成方便使用的「函式庫」。不過「函式庫」是一種將工作原理藏在內部的「黑箱」,因此大多數人在使用時不見得對演算法有充分的理解。想要寫出執行效能佳的程式,得確實理解演算法的工作原理才行。
本書介紹的資料結構與演算法
✪陣列的查詢:
互換元素╱尋找最大值╱互換排序╱合計╱最小元素值╱最小元素位置╱線性搜尋法╱二元搜尋法
✪排序:
反轉╱插入╱合併╱分割╱氣泡排序法╱選擇排序法╱插入排序法╱合併排序法╱快速排序法╱堆積排序法╱計數排序法╱希爾排序法
✪與整數相關的演算法:
埃拉托斯特尼篩法╱輾轉相除法
✪資料結構:
堆疊╱佇列╱雙向鏈結串列╱雜湊表
✪陣列的計算:
累積和╱一維累積和的應用╱二維累積和的應用
✪堆積:
Up Heap╱Down Heap╱建立堆積╱優先佇列
✪二元樹的走訪:
前序走訪╱後序走訪╱中序走訪╱層序走訪
✪其他:
廣度優先搜尋╱卡恩演算法╱深度優先搜尋╱Tarjan 演算法╱Union By Rank╱Union-Find Tree╱普林演算法╱克魯斯克爾演算法╱戴克斯特拉演算法╱貝爾曼 - 福特演算法╱弗洛伊德演算法╱包裹法╱葛立恆掃描法╱安德魯演算法╱線段樹:RMQ╱線段樹:RSQ╱二元搜尋樹╱旋轉╱樹堆……
本書特色:
★ 觀看【演算法動畫】同時搭配書中的原理說明,讓學習效果翻倍!
★ 收錄【61 個經典的演算法+資料結構】,讓你活化思維並提升邏輯思考力!
★ 【豐富的圖解及圖示設計】將抽象的演算法視覺化,易讀易學好吸收!
★ 逐步拆解演算法的運作原理、解析執行效率及優缺點,突破盲點、顛覆思考。
★ 沒有難懂的數學推導及長篇理論說明,降低學習門檻!
作者簡介
▍渡部有隆(Watanobe Yutaka)
1979 年出生。資訊工程學系博士。會津大學資訊工程學院 資訊系統部 資深副教授。專業領域為程式語言視覺化。AIZU ONLINE JUDGE 開發者。
http://web-ext.u-aizu.ac.jp/~yutaka/
▍Mirenkov Nikolay
畢業於新西伯利亞國立技術大學。專業領域為方法的視覺化與分散式運算。會津大學教授(1993-2013)、會津大學副校長(2007-2009)。會津大學特別榮譽教授(2009-2013)。
1979 年出生。資訊工程學系博士。會津大學資訊工程學院 資訊系統部 資深副教授。專業領域為程式語言視覺化。AIZU ONLINE JUDGE 開發者。
http://web-ext.u-aizu.ac.jp/~yutaka/
▍Mirenkov Nikolay
畢業於新西伯利亞國立技術大學。專業領域為方法的視覺化與分散式運算。會津大學教授(1993-2013)、會津大學副校長(2007-2009)。會津大學特別榮譽教授(2009-2013)。
內容目錄
Part 1 準備篇
第 1 章 程式設計的基本元素
第 2 章 程式設計的應用元素
第 3 章 演算法的基礎概念
Part 2 空間結構
第 4 章 空間結構的概要
第 5 章 陣列
第 6 章 樹狀結構
第 7 章 圖形
第 8 章 點群
第 9 章 動態結構
Part 3 演算法與資料結構
第 10 章 入門
第 11 章 陣列基本查詢
第 12 章 搜尋
第 13 章 陣列元素排序
第 14 章 必學的排序法
第 15 章 與整數相關的演算法
第 16 章 基本資料結構 1
第 17 章 陣列的計算
第 18 章 堆積
第 19 章 二元樹的走訪
第 20 章 高效率的排序法
第 21 章 基本資料結構 2
第 22 章 廣度優先搜尋
第 23 章 深度優先搜尋
第 24 章 Union-Find Tree
第 25 章 尋找最小生成樹的演算法
第 26 章 最短路徑演算法
第 27 章 計算幾何
第 28 章 線段樹
第 29 章 搜尋樹
第 1 章 程式設計的基本元素
第 2 章 程式設計的應用元素
第 3 章 演算法的基礎概念
Part 2 空間結構
第 4 章 空間結構的概要
第 5 章 陣列
第 6 章 樹狀結構
第 7 章 圖形
第 8 章 點群
第 9 章 動態結構
Part 3 演算法與資料結構
第 10 章 入門
第 11 章 陣列基本查詢
第 12 章 搜尋
第 13 章 陣列元素排序
第 14 章 必學的排序法
第 15 章 與整數相關的演算法
第 16 章 基本資料結構 1
第 17 章 陣列的計算
第 18 章 堆積
第 19 章 二元樹的走訪
第 20 章 高效率的排序法
第 21 章 基本資料結構 2
第 22 章 廣度優先搜尋
第 23 章 深度優先搜尋
第 24 章 Union-Find Tree
第 25 章 尋找最小生成樹的演算法
第 26 章 最短路徑演算法
第 27 章 計算幾何
第 28 章 線段樹
第 29 章 搜尋樹
ISBN: 9789863127079