YoVDO

資料結構與演算法 (JavaScript)

Offered By: Udemy

Tags

Algorithms and Data Structures Courses Javascript Courses Algorithms Courses Data Structures Courses Sorting Algorithms Courses Priority Queues Courses Hash Tables Courses Linked Lists Courses

Course Description

Overview

超過1350分鐘的coding面試必考題大全,用JavaScript學習資料結構與演算法,內容含排序演算法、主定理、連結串列、雜湊表、二元搜尋樹、優先佇列、霍夫曼演算法、最小生成樹、寬度優先搜尋、最短路徑演算法、戴克斯特拉演算法、動態規劃。

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
  • 了解P v.s. NP問題

超過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這門程式語言,來了解並一步一步寫出各種實用的演算法與資料結構。資料結構與演算法為電腦科學系、資工系必修科目之一,也是所有電腦相關科系中最重要的課程之一,因為其概念應用廣泛,在現實生活中的軟體、網路應用與資料處理,都會大量使用到資料結構與演算法的概念。

電腦世界中的資料以許多不同的形式儲存起來。當資料量開始的龐大時,好的演算法與資料結構可以大幅提升資料處存與讀取的速度。在建造系統時,不同的情況下會需要不同種類的資料結構。此課程會深入淺出的學習許多至種不同的資料結構,並且逐一分析使用情況與時機,並且了解其時間複雜度。


Taught by

Wilson Ren

Related Courses

Algorithms, Part I
Princeton University via Coursera
Data Structures
University of California, San Diego via Coursera
Data Structures and Algorithm Design Part II | 数据结构与算法设计(下)
Tsinghua University via edX
Data Structures Fundamentals
University of California, San Diego via edX
Data Structures and Algorithms (IV)
Tsinghua University via Coursera