「30 天的資料結構與演算法之旅」將以 JavaScript 為主要實作語言,系列內容以 Udemy 的 Master the Coding Interview: Data Structures + Algorithms 課程為主,並搭配其他網路資源,帶領大家逐步認識常見的資料結構與演算法。從 Big O、Array、Hash Table、Linked List 等概念出發,進而探索 Sorting、Tree、Graph 等主題,並試著連結日常開發中可能接觸到的實際應用。希望透過這段旅程,不僅認識不同的資料結構與演算法,也能理解它們之間的取捨,在日常開發中找到理解程式的新角度。
嗨大家好!我是 Monica,第一天一樣來講講系列文動機與大綱,談談未來的內容規劃。 關於分享主題 再次嘗試鐵人賽,希望能藉此督促自己學習新東西~這次的主題很經...
前言 昨天簡單介紹了資料結構與演算法,提到同一份資料可用不同方式組織,而不同的資料結構與解決步驟也可能產生不同的運算成本,不過當我們說某個方法「比較有效率」時...
前言 上一篇文章介紹了 Big O,我們學會用「輸入規模增加時,操作次數會怎麼成長」來描述一個做法的成本,不過那篇從頭到尾數的都是「操作次數」,也就是 Tim...
前言 前面兩篇用 Big O 和 Space Complexity 描述一個做法的時間與空間成本,不過一個做法即使又快又省,仍然可能算出錯誤答案。 那要怎麼知...
前言 今天要介紹的是大家很常聽到也很常使用的 Array~ 先從一個很日常的問題開始,假設我們手上有一百萬筆訂單資料,想拿到 orders[999999] 也...
前言 在昨天的文章中,我們舉例的訂單資料設定為「已經照建立時間排好」,但整篇文章卻沒有提到這個特性,談到 Search 時,我們說時間複雜度是 O(N),原因...
前言 今天要介紹的是 Hash Table,它在 JavaScript 裡最常見的樣貌就是我們每天都在寫的物件。 前面兩篇都在談 Array,而 Array...
前言 昨天留了個問題沒回答:不同的 key 撞在同一格時會發生什麼事,又該怎麼處理?今天就來看看~ 首先,再次看到熟悉的訂單資料~只是這次我們只給 4 格的...
前言 今天要介紹的是 Linked List~ 假設我們有一份播放清單,5 首歌照著順序排好,播完一首就自動接下一首: 晨光 → 迴聲 → 光暈 → 漂流 →...
前言 Day 09 的開頭有說,希望能在聽到播放清單的第二首歌時,把另一首歌插在它後面,但後來介紹的方法只有 append 和 prepend,一個加在尾巴、...