[用JS來寫演算法和了解資料結構] Day2 學習目錄和原始型別

[用JS來寫演算法和了解資料結構] Day2 學習目錄和原始型別

學習目錄

我的學習順序大致會分Data Structure和Algorithms兩個大項
另外搭配leetcode的題目。

Data Structure:
原始型別 Primitive Data Types
陣列 Array
雜湊表 Hash Table
集合 Set
Map / HashMap
鏈結串列 Linked List
堆疊 Stack
佇列 Queue
樹 Tree
圖 Graph

堆積 Heap
Tries

Operations on data structures

  1. Insert
  2. Access
  3. Search
  4. Delete
  5. Traverse
  6. Sort

不同資料結構的時間複雜度

Algorithms:

搜尋 Searching:
簡易搜尋/線性搜索 Sequential Search/Linear Search - O(n)
二分搜尋 Binary Search - O(log n)

Traversal
Depth First Search (DFS)
Breadth First Search (BFS)

排序 Sorting:

  1. 氣泡排序 Bubble Sort - Time O(n) or O(n^2) / Space - O(1)
  2. 選擇排序 Selection Sort - Time O(n^2) / Space - O(1)
  3. 插入排序 Insertion Sort - Time O(n) or O(n^2) / Space - O(1)
  4. 合併排序 Merge Sort - Time O(n log n) / Space - O(n)
  5. 快速排序 Quick Sort - Time O(n log n) / Space - O(log n)

遞迴 Recursion / 費波那契數列 Fibonacci numbers
分而治之 Divide-and-Conquer / 合併排序 Merge Sort 快速排序 Quick Sort
動態規劃 Dynamic programming / 費波那契數列 Fibonacci numbers

Greedy
Backtracking

原始型別 Primitive Data Types

原始型別就是資料結構中最基本的元素,

  • 因為是先學js才來了解資料結構,但js是弱型別語言,所以可能不太能理解某些結構與型別,可能會以js原始型別來想像會比較好理解吧(?)

分為以下:

  1. 整數 Integers - E.g., 1, 2, 3,
  2. 字元 Characters - E.g., a, b, “1”, “*”
    //在js中應該可以想像是字串..
  3. 布林 Booleans - E.g., true or false
  4. 浮點數或雙精度 Float (floating points) or doubles E.g., 3.14159, 1483e-2
    // js中數字型別都是以double的形式存在,可以是整數也可以代表浮點數另外還有+Infinity、-Infinity、NaN這三種。
  5. Null values. E.g. null
  • 另外JavaScript還有其他兩個型別 undefined和Symbol。
  • Object不是原始型別。

學習與參考資料

[用JS來寫演算法和了解資料結構] Day2 學習目錄和原始型別

https://kaiyuncheng.github.io/2023/09/27/leetcodeDay2/

Author

KaiYun Cheng

Posted on

2023-09-27

Updated on

2024-04-14

Licensed under

Comments

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×