資料結構?演算法?
為了設計出一個有效率的演算法來解決問題。通常得事先將要處理的原始資料進行一些特定處理或擺放,將有助於整個演算法的效能提升。
計算機軟體對於資料的處理,首當設計資料結構,該記錄那些資料、要用什麼方式來儲存,接著對於這群資料該如何進行新增、插入、刪除、搜尋等操作。
資料結構這門學科旨在說明計算機軟體有那些常用的資料結構,如Array, Linked List, Stack, Queue, Tree, Graph等,而對應這些不同的資料結構必然會有不同的操作方式…
為了設計出一個有效率的演算法來解決問題。通常得事先將要處理的原始資料進行一些特定處理或擺放,將有助於整個演算法的效能提升。
計算機軟體對於資料的處理,首當設計資料結構,該記錄那些資料、要用什麼方式來儲存,接著對於這群資料該如何進行新增、插入、刪除、搜尋等操作。
資料結構這門學科旨在說明計算機軟體有那些常用的資料結構,如Array, Linked List, Stack, Queue, Tree, Graph等,而對應這些不同的資料結構必然會有不同的操作方式…
課程目標
資料結構(Data Structures)是資訊學科中的核心課程之一,也是嵌入式軟體設計的基礎課程。「資料結構精修班」教授軟體開發者必修的資料結構和演算法,讓你思考程式的執行效率。
1. 不僅學會撰寫程式並能夠清楚掌握程式的重要觀念,了解”軟體程式=演算法+資料結構。
2. 能熟悉不同資料結構的設計模式。
3. 能了解軟體程式在何時會應用到這些資料結構。
4. 藉由排序與搜尋演算法理解來討論Big-O演算法效能分析。
課程特色
1. 資深軟體工程師上的資料結構。
資料結構不是用來考試的,給你真正用軟體設計思維思考資料結構設計。
2. 重視實作的方法。
資料結構不能只會觀念性描述, 還必須知道每一個結構定義完之後, 該如何具體實現, 每一個實現的方法,還能分析它的好壞 (複雜度分析)。
課程說明
課程提供的資料結構範例程式,可以使用任何C編譯器進行編譯,例如Code Blocks 、windows Dev-C++ 或 Linux 下的 GNU C 編譯器 (gcc)
• 課程總時數 : 16小時
• 觀看天數:45天
• 課程所附教材 : 精編講義、範例程式碼
- Part1-資料結構導論
- Part2-ADT 抽象資料型別設計方法
- Part3-Set 集合ADT設計
- Part4-Stack堆疊
- ► 堆疊ADT設計
► 堆疊軟體應用
- Part5-Queue 佇列
- ► 佇列ADT設計
► 環狀佇列ADT設計
► 堆疊軟體應用
- Part6-Linked List鏈結串列
- ► 動態配置記憶體
► 單向鏈結串列
► 環狀鏈結串列
► 使用C鏈結串列的各式操作-串列串接、串列反轉
- Part7-Tree樹狀結構
- ► 二元樹簡介
► 樹ADT設計
►二元搜尋樹(Binary Search Tree)
- ►建立(插入)節點、搜尋節點、刪除節
- Part8-Graph 圖形結構
- ►圖ADT設計
- ►圖的表示法
- ►建構圖、刪除邊、刪除頂點
- ►DFS
- ►BFS
- ►Dijkstra 演算法
- ►Bellman-Ford演算法
- Part9-Search資料搜尋
- ► 線性搜尋 (Linear Search)
► 二元搜尋 (Binary Search)
► 雜湊搜尋法 (Hashing)
- Part10-Sorting資料排序
- ► 氣泡排序(bubble sort)
► 選擇排序(selection sort)
► 插入排序(insertion sort)
► 快速排序(quick sort)
► 合併排序(merge sort)
► 桶排序(bucket sort)
課程實錄
適合對象
1. 具備程式設計基礎,熟悉C語言者尤佳 (範例程式碼目前僅提供C程式版本)。
2. 想要從事軟體設計開發,但缺乏良好的系統設計概念者。
職涯方向
嵌入式工程師 | 韌體工程師 | 網路應用程式設計師 | Linux平台驅動程式開發 | ARM Bootloader設計
更多延伸學習
課程諮詢