Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Udemy

資料結構與演算法 (JavaScript)

via Udemy

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

Reviews

4.8 rating at Udemy based on 425 ratings

Start your review of 資料結構與演算法 (JavaScript)

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.