iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

30 天資料結構修行:從零開始理解資料結構 系列

雖然曾修習過資料結構相關課程,但當時對許多概念的理解還不夠深入,因此希望藉由這次鐵人賽重新學習與整理。

本系列將從常見的資料結構開始,包括 Array、Linked List、Stack、Queue、Hash Table、Tree、Heap、Graph 等主題,重新理解各種資料結構的核心概念、特性、使用情境,以及時間複雜度等相關知識。

希望透過 30 天的整理與複習,不只是重新記住內容,而是能真正理解資料結構背後的思考方式,並建立更扎實的程式設計基礎。

參賽天數 29 天 | 共 29 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21 朋友的朋友:認識圖形結構

打開社群軟體,你會看到好友名單;點進朋友的頁面,又能看到他的朋友。有些朋友彼此認識,有些人你追蹤了他、他卻沒有追蹤你。如果要用資料結構把這些人和人之間的關係存起...

2026-10-05 ‧ 由 HSIUN 分享
DAY 22

Day 22 對照表還是朋友名單:相鄰矩陣與相鄰串列

Day 21 認識了圖的頂點、邊、度數和連通。圖畫在紙上一目了然,但電腦只認得記憶體:要怎麼讓程式「記住」誰和誰之間有邊? 今天介紹兩種常見的存法,一種是做一張...

2026-10-06 ‧ 由 HSIUN 分享
DAY 23

Day 23 一路追到底,還是一圈一圈逛:圖的追蹤

Day 22 把圖存進了記憶體,接下來要在圖裡「逛一圈」:從某個頂點出發,沿著邊走,把走得到的頂點一個一個拜訪(visit,也就是讀取或印出它)。這件事稱為圖的...

2026-10-07 ‧ 由 HSIUN 分享
DAY 24

Day-24 最近的路:最小成本生成樹與最短路徑

圖上的邊除了表示兩個頂點相連,還可以帶著一個數字,稱為權重(weight)。權重可以是造價、距離、時間或費用,帶有權重的圖就是加權圖(weighted grap...

2026-10-08 ‧ 由 HSIUN 分享
DAY 25

Day-25 把亂序的牌排整齊:排序入門與三種基本排序

在打鋪克牌時,你會怎麼整理?有人會先找出最小的那張放到最左邊,再從剩下的牌裡找最小的;有人會從左到右一張一張看,把每張牌插進左手邊已經排好的牌之間。這兩種直覺的...

2026-10-09 ‧ 由 HSIUN 分享
DAY 26

Day-26 選一個基準,分成兩邊:快速排序

以 n 代表資料筆數,選擇、插入、氣泡排序在最壞情況下,比較次數都會隨資料筆數呈平方成長,因此時間是 O(n²)。 換個方式想:老師要全班依身高排隊,可以先請一...

2026-10-10 ‧ 由 HSIUN 分享
DAY 27

Day-27 先拆再合:合併排序

兩位助教各自改完一疊考卷,都已經依分數由低到高疊好,現在要合成一疊。最省事的做法是:比較兩疊最上面那張,把分數低的放到新的一疊,一直重複到兩疊都拿完。每比較一次...

2026-10-11 ‧ 由 HSIUN 分享
DAY 28

Day-28 讓最大值一個個退場:累堆排序

昨天的選擇排序每一輪都要把剩下的資料從頭看到尾,才找得出最小值,要做 n − 1 輪,總共 O(n²),問題出在「找最值」太慢。 累堆(heap)正好擅長這件事...

2026-10-12 ‧ 由 HSIUN 分享
DAY 29

Day-29 排序大集合:謝耳排序、基底排序與怎麼選

目前介紹過的排序方法,有最壞要 O(n²) 的選擇、插入、氣泡排序,平均 O(n log n) 的快速排序,以及最壞 O(n log n) 的合併與累堆排序。收...

2026-10-13 ‧ 由 HSIUN 分享