What you’ll learn
-
使用Big O Notation, Big Omega, Big Theta三種工具來分析不同的演算法與資料結構。
-
學習8種不同的排序演算法,並了解其各自的使用時機、特性與優劣關係。
-
使用3種基本的排序演算法,包含泡沫排序(Bubble Sort)、插入排序 (Insertion sort)、選擇排序 (Selection sort)。
-
使用3種進階的排序演算法,包含合併排序 (Merge sort)、堆積排序(Heap Sort)、快速排序 (Quicksort)。
-
使用2種線性時間複雜度的排序演算法,包含計數排序 (Counting sort)、基數排序(Radix sort)。
-
線性搜索(Linear Search) 與二分搜尋演算法 (Binary search algorithm)。
-
學習並演練演算法設計技巧,例如:Pointer, Counter, Sliding Window, Divide and Conquer。
-
了解並且證明主定理(Master Theorem)。
-
了解基本的資料結構,例如: LinkedList、Stack、Queue
-
了解Hashtable的運作原理與計算公式,包含Multiplication Method and Division Method
-
學習如何處理hashtable當中的collisions
-
學習三種不同的深度優先的tree traversal演算法,包含PreOrder, InOrder, PostOrder。
-
學習Breadth First Tree Traversal。
-
使用Max Heap來建立Priority Queue。
-
了解壓縮檔案使用的Huffman Encoding演算法。
-
使用Prim’s Algorithm與Kruskal’s Algorithm找到圖形中的最小生成樹(Minimal Spanning Tree)。
-
學習深度優先與寬度優先的Graph Traversal Algorithms。
-
使用Floyd-Warshall演算法找到最短路徑。
-
使用Dijkstra’s演算法找到最短路徑。
-
學習動態規劃 (Dynamic programming)演算法。
-
了解並運用Greedy Method
Who this course is for:
- 想要學習資料結構與演算法的人
- 想要轉職成為工程師的人
- 自學寫程式,想要去做工程師面試的人
- 大學主修資訊工程、資訊管理、電腦科學等電腦資訊相關科系的學生。
- 不是資工本科系,但想要就讀或報考資工研究所的學生。
- 想要學習JavaScript語法與應用的前後端工程師。
- 對於瞭解電腦科學中的各種不同演算法有興趣的人。
- 想要做coding interview面試的人。
Deal Score0
Disclosure: This post may contain affiliate links and we may get small commission if you make a purchase. Read more about Affiliate disclosure here.