Contents
這是一堂非常豐富與實用的中文課程:資料結構與演算法 (以JavaScript語言為主),學習演算法分析、8種排序演算法、主定理、遞迴演算法、連結串列、雜湊表、二元搜尋樹、優先佇列、霍夫曼演算法、最小生成樹、深度優先搜尋、寬度優先搜尋、最短路徑演算法、戴克斯特拉演算法、動態規劃以及Greedy Method等等。
透過這門課學習更多資料結構與演算法,開啟你的電腦科學之旅!
從這 25.5 小時的課程,你會學到
- 使用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
- 了解P v.s. NP問題
要求
- 了解基本JavaScript語法
- 一顆想要學習的心
- 一台可以打字的電腦
課程說明
超過1200分鐘的實在課程,內容包含電腦科學世界中的常見與實用的演算法與資料結構,對於不是資工本科系的人來說,是非常重要的演算法課程!此包含
- 演算法分析(Big O Complexity)
- 八種排序演算法(Sorting Algorithms)
- 主定理(Master Theorem)
- 遞迴演算法(Recursion)
- 連結串列(LinkedList)
- 雜湊表(Hash Table)
- 二元搜尋樹(Binary Search Tree)
- 優先佇列(Priority Queue)
- 霍夫曼演算法(Huffman Encoding)
- 最小生成樹(Minimal Spanning Tree)
- 深度優先搜尋(Depth First Search)
- 寬度優先搜尋(Breadth First Search)
- 最短路徑演算法(Floyd-Warshall Algorithm)
- 戴克斯特拉演算法(Dijkstra’s Algorithm)
- 動態規劃 (Dynamic programming)等等的內容
在這堂課程當中,我們會學習各種電腦科學當中,使用JavaScipt這門程式語言,來了解並一步一步寫出各種實用的演算法與資料結構。資料結構與演算法為電腦科學系、資工系必修科目之一,也是所有電腦相關科系中最重要的課程之一,因為其概念應用廣泛,在現實生活中的軟體、網路應用與資料處理,都會大量使用到資料結構與演算法的概念。
電腦世界中的資料以許多不同的形式儲存起來。當資料量開始的龐大時,好的演算法與資料結構可以大幅提升資料處存與讀取的速度。在建造系統時,不同的情況下會需要不同種類的資料結構。此課程會深入淺出的學習許多至種不同的資料結構,並且逐一分析使用情況與時機,並且了解其時間複雜度。
目標受眾
- 想要學習資料結構與演算法的人
- 想要轉職成為工程師的人
- 自學寫程式,想要去做工程師面試的人
- 大學主修資訊工程、資訊管理、電腦科學等電腦資訊相關科系的學生。
- 不是資工本科系,但想要就讀或報考資工研究所的學生。
- 想要學習JavaScript語法與應用的前後端工程師。
- 對於瞭解電腦科學中的各種不同演算法有興趣的人。
- 想要做coding interview面試的人。
講師簡介
Wilson Ren 教師、網頁全端設計師、Python資料科學分析師( 更多講師主講課程介紹)
我是一位網頁全端開發者、Python資料工程師。
我相信,透過清楚的講解與示範,任何人都可以學好編寫程式與電腦科學中的複雜概念。我透過錄製課程來實現我的理想。目前我有八堂課程,分別為「2023 Python 全攻略」、「2023網頁全端開發」、「2023 Java 課程」、「2022網頁全端攻略」、「離散數學」、「數論與密碼學」、「資料結構與演算法」,以及「線性代數」。
我在到美國之前,完全沒有寫過程式的經驗。在眾多不同的主修當中,我選擇電腦科學(台灣的資訊工程系)來當作主修,因為我從小就對電腦有濃厚的興趣。在此之後,我寫過無數網頁、開發過許多不同的樣板以及網頁架構,也在課外之餘在許多不同的線上學習資源當中學習更新穎更多樣的網頁設計技巧。
- 點選這個✨優惠連結✨ 課程特價 | Udemy 永久擁有課程 NT330 起( 在電腦瀏覽器登入,點選“優惠連結”後再回想要的課程介紹中點選“報名參加課程”即可取得 )
- Udemy 現在越來越多課程有中文字幕,請參考 Soft & Share 中文線上課程
- 手機上點選優惠連結看到的價格比電腦上看到的貴
- $代表當地貨幣, 如在台灣為 NT
- 點選”報名參加課程”有可能因瀏覽器 cookies 轉久一點或回報錯誤而無法連上,請稍等刷新或重新點選就會出現
報名參加課程
也許你會有興趣
- Javascript-完整指南2023(初學者 + 進階)
- ★英語學習地圖 – 練好英文是最大的學習槓桿
- 如何找工作學習地圖 – 找工作不要靠運氣!
- 挑選 Soft & Share 各種粉絲群與頻道加入