
0人評分過此書
圖說演算法:使用JavaScript
零負擔理解演算法設計技巧
零程式基礎也能快速上手
採網頁前端開發工具JavaScript實作程式
一本輕量級演算法,是您獲得程式設計新技能,提升自我價值的最好投資!
當「寫程式」納入必修課程的重要趨勢下,APP開發或網頁程式設計已是大部份學生或社會人士必須具備的基礎能力。演算法是用來培養程式設計邏輯的基礎理論,也是有志從事資訊工作的專業人員,不得不重視的一門基礎課程。
為了讓讀者能以容易理解的方式吸收演算法與基礎資料結構的相關知識,全書使用簡明的圖例介紹最常用演算法的概念,包括:分治法、遞迴法、貪心法、動態規劃法、疊代法、枚舉法、回溯法,並實作許多經典案例,如:字串反轉(String Reversal)、迴文(Palindrome)、整數反轉(Integer Reversal)、判斷兩字是否相同(Agrams)、金字塔圖形外觀(Pyramid)…等等。同時應用不同演算法延伸出重要資料結構,例如:陣列、鏈結串列、堆疊、佇列、樹狀結構、排序、搜尋、雜湊…等,搭配這幾年快速竄紅的JavaScript程式語言舉例實作,是您入門演算法的最佳首選。
本書特色:
✔演算法最佳首選:配合實作程式碼,將各種演算法應用在程式設計的領域
✔強化程式設計邏輯:豐富圖例闡述基礎,將演算法做最簡明的詮釋及舉例
✔完善科學領域議題:加入實戰安全性演算法與人工智慧的相關演算法
✔驗收學習成果:設計難易適中的習題,並參閱國家考試題型,提供進一步演練
零程式基礎也能快速上手
採網頁前端開發工具JavaScript實作程式
一本輕量級演算法,是您獲得程式設計新技能,提升自我價值的最好投資!
當「寫程式」納入必修課程的重要趨勢下,APP開發或網頁程式設計已是大部份學生或社會人士必須具備的基礎能力。演算法是用來培養程式設計邏輯的基礎理論,也是有志從事資訊工作的專業人員,不得不重視的一門基礎課程。
為了讓讀者能以容易理解的方式吸收演算法與基礎資料結構的相關知識,全書使用簡明的圖例介紹最常用演算法的概念,包括:分治法、遞迴法、貪心法、動態規劃法、疊代法、枚舉法、回溯法,並實作許多經典案例,如:字串反轉(String Reversal)、迴文(Palindrome)、整數反轉(Integer Reversal)、判斷兩字是否相同(Agrams)、金字塔圖形外觀(Pyramid)…等等。同時應用不同演算法延伸出重要資料結構,例如:陣列、鏈結串列、堆疊、佇列、樹狀結構、排序、搜尋、雜湊…等,搭配這幾年快速竄紅的JavaScript程式語言舉例實作,是您入門演算法的最佳首選。
本書特色:
✔演算法最佳首選:配合實作程式碼,將各種演算法應用在程式設計的領域
✔強化程式設計邏輯:豐富圖例闡述基礎,將演算法做最簡明的詮釋及舉例
✔完善科學領域議題:加入實戰安全性演算法與人工智慧的相關演算法
✔驗收學習成果:設計難易適中的習題,並參閱國家考試題型,提供進一步演練
-
PART I 運算思維與演算法
-
1 大話運算思維與程式設計
-
1-1 大話運算思維
-
1-2 運算思維的腦力大賽
-
1-3 生活中到處都是演算法
-
-
2 地表上最常見經典演算法
-
2-1 分治演算法
-
2-2 遞迴演算法
-
2-3 給我最好,其餘免談的貪心法
-
2-4 分治法的麻吉兄弟-動態規劃演算法
-
2-5 不斷繞圈的疊代演算法
-
2-6 人人都有份的枚舉演算法
-
2-7 不對就回頭的回溯法
-
-
3 經典演算法案例
-
3-1 字串反轉(String Reversal)
-
3-2 迴文(Palindrome)
-
3-3 整數反轉(Integer Reversal)
-
3-4 最常出現的字母(Max Character)
-
3-5 判斷兩字是否相同(Anagrams)
-
3-6 反向陣列(Reverse Array)
-
3-7 將句中或片語單字反轉(Reverse Words)
-
3-8 首字大寫(Capitalization)
-
3-9 平均值(Mean)
-
3-10 回傳給定總和的數值序對(Two Sum)
-
3-11 最大利潤(Max Profit)
-
3-12 費伯那序列(Fibonacci)
-
3-13 記憶式費伯那序列(Memoized Fibonacci)
-
3-14 階梯狀圖形外觀(Staircase)
-
3-15 金字塔圖形外觀(Pyramid)
-
-
-
PART II 資料結構相關演算法
-
4 走入資料結構的異想世界
-
4-1 資料結構初體驗
-
4-2 超人氣的資料結構型態
-
4-3 盤根錯節的樹狀結構
-
4-4 學會藏寶圖的密技-圖形簡介
-
4-5 神奇有趣的雜湊表
-
-
5 全方位應用的陣列與串列演算法
-
5-1 矩陣演算法與深度學習
-
5-2 陣列與多項式
-
5-3 徹底玩轉單向串列演算法
-
-
6 堆疊與佇列演算法徹底研究
-
6-1 陣列實作堆疊輕鬆學
-
6-2 鏈結串列實作堆疊
-
6-3 古老的河內塔演算法
-
6-4 八皇后演算法
-
6-5 陣列實作佇列
-
6-6 鏈結串列實作佇列
-
6-7 有趣的雙向佇列
-
6-8 一定要懂得優先佇列
-
-
-
PART III 排序與搜尋演算法
-
7 新手快速學會的排序演算法
-
7-1 看懂排序
-
7-2 氣泡排序法
-
7-3 選擇排序法
-
7-4 插入排序法
-
7-5 謝耳排序法
-
7-6 合併排序法
-
7-7 快速排序法
-
7-8 基數排序法
-
-
8 打造快速體驗的搜尋心法
-
8-1 循序搜尋法
-
8-2 二分搜尋法
-
8-3 內插搜尋法
-
8-4 費氏搜尋法
-
-
-
PART IV 樹與圖的演算法
-
9 超圖解的樹狀演算法
-
9-1 陣列實作二元樹
-
9-2 鏈結串列實作二元樹
-
9-3 二元樹走訪的入門捷徑
-
9-4 二元樹節點搜尋
-
9-5 二元樹節點插入
-
9-6 二元樹節點的刪除
-
9-7 堆積樹排序法
-
9-8 延伸二元樹入門
-
9-9 霍夫曼樹特訓班
-
9-10 平衡樹
-
9-11 決策樹的智慧
-
-
10 圖形演算法的關鍵課程
-
10-1 圖形簡介
-
10-2 不能不學的圖形表示法
-
10-3 圖形走訪的訣竅
-
10-4 擴張樹的密碼
-
10-5 圖形最短路徑演算法
-
-
-
PART V 現代議題演算法
-
11 完美實戰安全性演算法
-
11-1 輕鬆學會資料加密
-
11-2 一學就懂的雜湊演算法
-
11-3 破解碰撞與溢位處理
-
-
12 人工智慧演算法
-
12-1 機器學習簡介
-
12-2 認識深度學習
-
-
-
A 開發環境與JavaScript 快速入門
-
A-1 JavaScript 執行環境
-
A-2 選擇程式的文字編輯器
-
A-3 基本資料處理
-
A-3-1 程式敘述與原生型別
-
A-3-2 數值資料型態
-
A-3-3 布林資料型態
-
A-3-4 字串資料型態
-
A-3-5 Undefined(未定義)
-
A-3-6 null(空值)
-
-
A-4 變數宣告與資料型別轉換
-
A-4-1 使用var 關鍵字宣告變數
-
A-4-2 使用let 關鍵字宣告變數
-
A-4-3 使用const 關鍵字宣告常數
-
A-4-4 變數名稱的限制
-
A-4-5 強制轉換型別
-
-
A-5 輸出與輸入指令
-
A-5-1 輸出console.log 與process.stdout.write
-
A-5-2 輸出跳脫字元
-
A-5-3 輸入prompt 指令
-
-
A-6 運算子與運算式
-
A-6-1 算術運算子
-
A-6-2 複合指定運算子
-
A-6-3 關係運算子
-
A-6-4 邏輯運算子
-
A-6-5 運算子優先順序
-
-
A-7 流程控制
-
A-7-1 選擇性結構
-
A-7-2 for 迴圈
-
A-7-3 while 迴圈
-
A-7-4 do...while 迴圈
-
A-7-5 break 和continue 敘述
-
-
A-8 陣列宣告與實作
-
A-8-1 陣列宣告
-
A-8-2 取用陣列元素的值
-
-
A-9 函式定義與呼叫
-
A-9-1 函式的定義與呼叫
-
A-9-2 函式參數
-
A-9-3 函式回傳值
-
A-9-4 箭頭函式(Arrow function)
-
A-9-5 全域變數與區域變數
-
-
A-10 物件的屬性與方法
-
A-10-1 認識物件導向程式設計
-
A-10-2 在JavaScript 使用物件
-
-
- 出版地 : 臺灣
- 語言 : 繁體中文
評分與評論
請登入後再留言與評分