iT邦幫忙

data structure相關文章
共有 122 則文章
鐵人賽 JavaScript DAY 28

技術 Day 27|推薦系統真的只是在找你最喜歡的東西嗎?

上一篇,我們談到實驗課排程時,先把注意力放在一件很重要的事情上: 先找到一個符合所有條件的可行解 例如實驗課表必須滿足: 同一間實驗室不能重複借用 實驗室...

鐵人賽 JavaScript DAY 27

技術 Day 26|實驗課都要借實驗室,課表怎麼排?

上一篇,我們看了外送平台怎麼決定誰來送一張訂單。 乍看之下,好像只是 找距離最近的外送員,但真正的問題裡,可能同時存在: 路線距離 等待時間 外送員工作量 手...

鐵人賽 JavaScript DAY 26

技術 Day 25|外送平台怎麼決定誰來送你的餐?

上一篇,我們把「人與工作之間的分配」畫成了一張 Graph。例如: 問題變成: 哪一個人應該被分配到哪一件工作? 這就是匹配想處理的問題。但如果真的打開一個...

鐵人賽 JavaScript DAY 24

技術 Day 23|一天只有八小時,工作到底怎麼排?

上一篇,我們談了 Bin Packing。假設每台貨車的容量有限: capacity = 10 而所有箱子都必須送走,我們要思考的是: 怎麼把這些箱子分配到...

鐵人賽 JavaScript DAY 20

技術 Day 19|找零錢為什麼很自然會想到 Greedy?

前幾篇,我們一路從 dependency、propagation 談到 Graph 本身也可能隨著系統執行而改變。到這裡,我們已經不只是在描述資料結構,也開始面...

鐵人賽 JavaScript DAY 19

技術 Day 18|當 Graph 本身也會改變,問題有什麼不同?

上一篇,我們談到 dependency 不只可以描述: 誰必須先完成? 也可以幫助我們回答: 當某個東西改變時,哪些地方可能需要跟著重新計算? 例如:...

鐵人賽 JavaScript DAY 18

技術 Day 17|改一個東西,為什麼會影響很多地方?

上一篇,我們把 npm 專案看成了一張 Dependency Graph。當一個 package 依賴另一個 package 時,我們可以把關係畫成 A → B...

鐵人賽 JavaScript DAY 17

技術 Day 16|你的 npm 專案其實是一張 Dependency Graph

前幾篇,我們已經從「事情的先後順序」一路談到有向圖、Cycle、DAG 與拓樸排序。例如: A → B → C 代表: B 依賴 A,C 又依賴 B 這種...

鐵人賽 JavaScript DAY 15

技術 Day 14|A 等 B,B 又等 A:Cycle 為什麼麻煩?

上一篇我們開始把「事情必須按照先後順序完成」畫成有向圖。例如: 買食材 → 備料 → 烹煮 → 上桌 箭頭代表 dependency: A → B 可以理解...

鐵人賽 JavaScript DAY 14

技術 Day 13|為什麼有些事情一定要先做完?

前幾天我們一直用 Graph 描述「東西之間怎麼連在一起」。例如捷運路網: 我們在意的是: 從 A 能不能走到 F?哪條路比較短?哪條路花的時間比較少? 但...

鐵人賽 JavaScript DAY 12

技術 Day 11|DFS 和 BFS 到底哪個比較好?

前兩篇,我們分別看過了兩種很常見的 Graph 搜尋方式: Graph + Stack → DFS Graph + Queue → BFS DFS 選擇先沿著...

鐵人賽 JavaScript DAY 11

技術 Day 10|捷運最少經過幾站:為什麼 BFS 很適合?

上一篇談到 DFS 時,我們做了一個很明確的選擇: 先沿著一條路一路走到底 這是一種搜尋策略。但如果今天問題換方向了呢? 假設我們面前不是迷宮,而是一張捷運...

鐵人賽 JavaScript DAY 10

技術 Day 9|在迷宮裡一路走到底:DFS 在做什麼?

昨天我們終於把 Graph 從紙上的線條,變成程式真的能保存的資料。例如一張簡化的路網: 我們可以用 Adjacency List 表示: const grap...

鐵人賽 JavaScript DAY 9

技術 Day 8|Graph 在程式裡到底長什麼樣子?

上一篇我們用捷運路網理解 Graph。例如有幾個站點: 如果把它看成 Graph: 每個車站是一個 node 站與站之間的連接是一條 edge 畫出來很直...

鐵人賽 JavaScript DAY 8

技術 Day 7|捷運路網為什麼不是一棵 Tree?

上一篇我們從資料夾開始認識 Tree。像這樣: Documents ├─ Work │ ├─ report.pdf │ └─ meeting.md │ └─...

鐵人賽 JavaScript DAY 7

技術 Day 6|資料夾為什麼看起來像一棵 Tree?

前幾篇我們一直在問一個很類似的問題: 資料要怎麼拿? Queue 說:最早進來的先拿 Stack 說:最後進來的先拿 Priority Queue 說:最...

鐵人賽 JavaScript DAY 6

技術 Day 5|通訊錄為什麼不用從第一個人開始找?

前面幾篇,我們其實一直在討論同一類操作需求: 下一個要拿哪一筆資料? Queue 的答案是最早進來的那一筆。 Priority Queue 的答案是現在最...

鐵人賽 JavaScript DAY 5

技術 Day 4|為什麼「復原」要從最後一步開始?

上一篇談 Priority Queue 時,我們看到了一件很重要的事: 資料不一定按照進來的時間被處理,「誰先被拿出來」本身就是問題的一部分。 Queue...

鐵人賽 JavaScript DAY 4

技術 Day 3|急診室為什麼不能只用 Queue?

上一篇我們從超商結帳、客服電話與列印工作認識了 Queue。簡單複習一下 Queue,例如四個人依序進入隊伍: A → B → C → D 那麼處理順序自然就...

鐵人賽 JavaScript DAY 3

技術 Day 2|排隊為什麼需要 Queue?

你走進超商,前面已經有三個人在排隊。你站到隊伍最後面,等待前面的人依序結帳。我甚至不用特別講,你也能腦補這個機制: 第一個來的人先結帳 第二個來的人接著結帳...

鐵人賽 JavaScript DAY 2

技術 Day 1|資料結構到底在解決什麼問題?

如果要用 JavaScript 儲存一群資料,我們其實很容易想到一個最直覺的答案: const users = ["Alice", &quo...

鐵人賽 JavaScript DAY 1

技術 當 AI 已經會寫程式,我們為什麼還要學資料結構與演算法?

現在如果想寫一個 Queue、Binary Search,甚至 Dijkstra,最簡單的方法可能已經不是打開課本,而是直接問 AI。幾秒鐘後,我們就能得到一段...

鐵人賽 Software Development DAY 12

技術 Day 12 - 堆疊(Stack)

今天要來進到新的單元~還記得我們在第一天有簡單提到 Stack 嗎?接下來要更加了解他 堆疊(Stack)是什麼? 堆疊是一種只能在同一端(稱為頂端,Top)進...

鐵人賽 Software Development DAY 7
消除你程式碼的臭味 系列 第 7 篇

技術 Day 7- 資料結構至上:好程式碼的關鍵思考

消除你程式碼的臭味 Day 7- 資料結構至上:好程式碼的關鍵思考 搞錯了資料結構,寫的就不是程式碼,是日後要爆炸的地雷。 Bad programmers...

鐵人賽 生成式 AI DAY 6

技術 day6 LLM結構化輸出:精確控制與系統串接的利器

前言 前天和昨天,我們進行promptTemplate和langServe快速部屬api的操作範例,但今天介紹及說明另外一個核心功能,結構化輸出structur...

鐵人賽 自我挑戰組 DAY 30

技術 Day30 - 從競賽程式學習資料結構與演算法-最後總結

終於到最後一天了,在這過程中有著無數次催隊友快點發文,也有幾次差點忘記需要寫文,甚至最近因為社團的事情和比賽沒有什麼時間可以寫文章,所以內容越來越簡單,不過終究...

鐵人賽 自我挑戰組 DAY 14

技術 Day-14 學習資源分享

前言 今天是中秋節,所以就分享一些學習資源以供大家自學、參考,以下資源皆為免費內容,請安心服用 講義 以下是我過去所使用過的學習資源,有些因為難度太高半途而廢,...

鐵人賽 Software Development DAY 7

技術 【Java】HashMap 的工作原理(下)

昨天介紹了 HashMap 將 key 定位到 bucket 的過程。而本文主要解說的是,在一個 bucket 中,要如何找到 key 所對應的節點,進而討論為...

鐵人賽 自我挑戰組 DAY 7

技術 Day-7 鏈結串列(Linked List)

概念 Linked List 是一種線性資料結構,可以從中間直接插入元素,相對陣列來說會比較省時,不過在競賽程式其實我其實一次也沒有用過,原因我會在底下做說明。...

鐵人賽 自我挑戰組 DAY 7

技術 Day 7|新增 Series 或 DataFrame

  嗨!大家好!了解完如何載入和觀察資料後,接著將開始一系列對資料內容的操作,今天的主題為「新增資料」,內容分別以Pandas兩種常見的數據結構說明,包含:...