Title

資料結構與演算法 (JavaScript)

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

4.69 (719 reviews)
Udemy
platform
中文
language
Databases
category
instructor
資料結構與演算法 (JavaScript)
6 375
students
25.5 hours
content
Jan 2025
last update
$69.99
regular price

What you will 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問題

Why take this course?

🎉 資料結構與演算法(JavaScript版) 🚀

課程頭緒: 你是否經常面對數據分析、排序和搜尋問題?這堂超過1350分鐘的實战課程將為你打造能力,使你能夠掌握電腦科學中最關鍵的演算法與資料結構,無論你是否來自資工系!🎉

課程亮點:

  • 演算法分析(Big O Complexity):學習如何分析演算法的效率。
  • 排序演算法(Sorting Algorithms):深入了解並實作八種不同的排序方法。
  • 主定理(Master Theorem):掌握這個強大的分析工具。
  • 遞迴演算法(Recursion):使用JavaScript解決問題的一種強大方式。
  • 連結串列(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):理解並使用這種計算複雜性的演算法。

課程內容概述:

在這堂課程中,你將通過JavaScript這門多功能的Programming Language來實際操作和理解各種實用的資料結構與演算法。這些概念不僅是電腦科學和資工系的基礎知識,更是現代軟體、網路應用以及資料處理等領域中不可或缺的技術。

為什麼要學資料結構與演算法?

  • 面試必勝技: 在程式師的面試中,掌握這些知識能夠顯著提高你的競爭力。
  • 解決真實問題: 了解如何選擇合適的資料結構和演算法來解決實際問題。
  • 提升效率: 當處理大量數據時,知道如何優化演算法和數據結構可以顯著提高系統性能。

學習成果:

  • 你將能夠選擇合適的資料結構來解決不同類型的問題。
  • 你將學會如何分析和比較演算法的效率。
  • 你將能夠在面試中展示你的技術掌握和問題解決能力。
  • 你將對數據結構和演算法有更深入的理解,並且能夠在實際應用中運用它們。

🔍 加入這堂課程,開啟你的演算法與資料結構之旅! 🌟

注意: 本課程適合具有一定基礎知識的學生,對JavaScript和程式設計有一定的理解和實戰經驗。如果你是初學者,建議先從基礎學習開始。🛣️

準備好迎接演算法與資料結構的挑戰了嗎?立即報名,開始你的程式專家之旅!🚀✨

Screenshots

資料結構與演算法 (JavaScript) - Screenshot_01資料結構與演算法 (JavaScript) - Screenshot_02資料結構與演算法 (JavaScript) - Screenshot_03資料結構與演算法 (JavaScript) - Screenshot_04

Our review

Course Overview:

The course in question is a comprehensive exploration of Data Structures and Algorithms, offering clear explanations and step-by-step guides that cover concepts from definitions to pseudocode and actual code implementation. It delves into advanced topics such as Kruskal's, Prim's algorithms for Minimal Spanning Tree, Huffman Coding, and more. This course is ideal for beginners and intermediate developers looking to build a strong foundation in data structures and algorithms, especially those preparing for coding interviews.

Pros:

  • Comprehensive Curriculum: The course provides a solid foundation in data structures and algorithms, covering both theory and practical application.
  • Clear Explanations: Reviews indicate that the instructor's explanations are detailed and easy to follow for those entering with little to no prior knowledge.
  • Step-by-Step Guidance: The course is structured in a way that encourages learners to think about and understand the concepts at a deeper level.
  • Diverse Content: It introduces several advanced topics that are not commonly covered in other courses, enriching the learner's understanding of the subject matter.
  • Practical Application: The course emphasizes the application of algorithms in real-world scenarios, which is particularly useful for those preparing for technical interviews.
  • Highly Recommended: The course is highly recommended by users who have found it beneficial for their learning journey.

Cons:

  • Mathematical Proofs: Some students may find the mathematical proofs presented to be dense and challenging to understand, although they are detailed.
  • Complex Concepts: While the course covers essential topics, some advanced concepts are not fully explored, leaving learners to seek additional resources for a more comprehensive understanding.
  • Balance Between Theory and Practice: The balance between theoretical explanation and practical implementation is described as microscopic in parts, with some implementations appearing general rather than optimized.
  • Potential Gaps in Learning: Certain algorithms, such as sorting and heap operations, are covered but may leave learners with a superficial understanding, particularly when it comes to applying these skills in practical coding challenges like those on LeetCode.
  • Video Quality: Some users report that the quality of the video content could be improved, with a few noting that some parts are too brief and skip over important details or alternative methods.

User Experience:

  • Effective Learning Techniques: One user highlighted the effectiveness of drawing out steps to understand complex algorithms, suggesting this approach helped in achieving a full comprehension of the material.
  • Value for Money: The course is considered an excellent value for its cost, offering a substantial amount of content at a reasonable price.
  • Room for Improvement: Some users suggest that improvements could be made to the video quality and pacing to enhance the learning experience.

In conclusion, this course offers a valuable resource for those looking to learn about data structures and algorithms. While it has some limitations, particularly in areas that require a deeper dive into mathematical proofs and more robust practical examples, the course remains highly recommended due to its comprehensive coverage of the subject and its practical application for real-world scenarios. Users are encouraged to complement their learning with additional resources where the course may not provide complete explanations or implementations.

Charts

Price

資料結構與演算法 (JavaScript) - Price chart

Rating

資料結構與演算法 (JavaScript) - Ratings chart

Enrollment distribution

資料結構與演算法 (JavaScript) - Distribution chart
3819536
udemy ID
02/02/2021
course created date
23/04/2021
course indexed date
Bot
course submited by