[筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 1

重念一次早該補起來的「資料結構與演算法」。這篇筆記下一些必備的前置知識重點。

notes-theideaofalgorithm-javascript-1


課程相關資訊

[連結]:https://hiskio.com/courses/572/lectures/29766

本篇範圍:Chapter 1 ~ Chapter 3

請注意:本系列文章為個人對應課程的消化吸收後,所整理出來的內容。換言之,並不一定會包含全部的課程內容,也有可能會添加其他資源來說明。


內容

1. Algorithm 是有限的連續指令,以一步步的程序來解決問題
2. 演算法可以透過時間 (比較快)、記憶體使用量和複雜度三個面向來評斷
3. 有鑑於各個測試裝置的配置都不同,一般而言都是以「複雜度」這個面向來做比較
4. 複雜度可分為時間和空間兩個維度
5. 執行次數以函式表示為 f(n) = operation times,其中 n 為 input 的大小

Big O Notation

執行次數函式在趨近於「最壞」的情況下,會執行幾次。換言之,就是執行函式的 UpperBond

Big Omega Notation

執行次數函式在趨近於「最優」的情況下,會執行幾次。換言之,就是執行函式的 LowerBond

Big Theta Notation

執行次數函式在趨近於「平均」的情況下,會執行幾次。


Asymptotic notation

O(1)<O(logN)<O(sqrt(N))<O(N)<O(NlogN)<O(N^2)<O(2^N)<O(N!)


系列文章

  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 9
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 8
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 7
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 6
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 5
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 4
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 3
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 2
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 15
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 14
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 13
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 12
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 11
  • [筆記] 程式必修課!資料結構與演算法|JavaScript 篇 – 10
  • 按讚加入粉絲團

    延伸閱讀