iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
自我挑戰組

CS補完計畫—演算法與資料結構的第三次衝擊 系列

大家好!在這次的鐵人賽中,我將以演算法與資料結構為主軸,深入淺出地探討它們的原理、優化技術,以及在各種情境中的應用。為了更加具體地理解艱澀的概念,也會時常插入一些題目來輔助學習。
具體來說,我們將探索策略層面上的各種演算法,包括枚舉、貪心、分治、動態規劃、圖論,以及它們的衍生演算法。除此之外我們也會學習如何使用啟發式演算法來尋找問題的最佳解,進而入門heuristic contest。希望大家在這次的鐵人賽中,能夠一同體驗到演算法與資料結構的魅力,並進一步掌握它們的應用。

DAY 1

Day 1 我自己揭開序幕的故事

序言 —— 從不完美中尋找完美 大家好呀!我是暗魂駭客,接下來參賽的30天請各位多多指教!希望我能順利完賽。 我會選擇參賽的理由主要是有兩個:其一是想鍛鍊自己的...

2023-09-16 ‧ 由 暗魂駭客 分享
DAY 2

Day 2 你對速度一無所知

延續自昨天,今天要來探討分析解決問題方法的效率的方法! 程式好壞評估 這邊先請大家思考一下:要怎麼精準評估一個程式寫的好不好呢? 一般來說,一個程式 跑得快...

2023-09-17 ‧ 由 暗魂駭客 分享
DAY 3

Day 3 為什麼你(算極限)會這麼熟練啊!

量級與複雜度函數 延續昨天,我們發現就連步驟數都不必估計得很精確,因此我們真正需要的是一個能找到最痛點的估計方法! 不過在此之前,先讓我介紹一個例子:你 14...

2023-09-18 ‧ 由 暗魂駭客 分享
DAY 4

Day 4 天上的階乘不說話,地上的 log 想長大

量級對實際程式的影響 看完昨天一大堆的數學後,我自己都寫得有點頭昏眼花了XD,但是理論也不能脫離現實,因此本段會實際用程式展示一下不同量級對於時間帶來的影響!...

2023-09-19 ‧ 由 暗魂駭客 分享
DAY 5

Day 5 漸進符號什麼的最討厭了!

漸進符號 其實如果有看完前四天的文章並有試著跟著練習的話,你對時間複雜度應該有基本的感覺了就像折斷HB鉛筆會發出啪的一聲一樣理所當然 不過接下來說的漸進符號可以...

2023-09-20 ‧ 由 暗魂駭客 分享
DAY 6

Day 6 我說那個讀者們啊,剛才寫程式的時候,你有在分析吧?

一個理論的成立,通常也會帶動相關技術的進步。所以我們今天將利用昨天學的漸進符號,反過來改進我們實際在估算複雜度的流程。 實際的複雜度估計 昨天在最後提到了兩個問...

2023-09-21 ‧ 由 暗魂駭客 分享
DAY 7

Day 7 不數迴圈就沒辦法分析了?技豈是如此不便之物 其一

接下來幾篇要介紹時間複雜度各種的分析技巧,不過因為個人能力有限,因此這裡開始會大量參考網路資源,尤其是 AA 競程在 YouTube 的時間複雜度教學影片。...

2023-09-22 ‧ 由 暗魂駭客 分享
DAY 8

Day 8 不數迴圈就沒辦法分析了?技豈是如此不便之物 其二

今天要繼續介紹時間複雜度的常用分析手法,文章內容參考了各種網路資源,其中最主要的是 AA 競程在 YouTube 的時間複雜度教學影片 ,有興趣的可以去他們的...

2023-09-23 ‧ 由 暗魂駭客 分享
DAY 9

Day 9 不數迴圈就沒辦法分析了?技豈是如此不便之物 其三

今天要介紹最後一種時間複雜度的分析技巧,要是你能夠把這幾天介紹的三種技巧融會貫通,之後在大部分的場景你應該都有辦法看出一段程式的時間複雜度。 之所以說大部分是...

2023-09-24 ‧ 由 暗魂駭客 分享
DAY 10

Day 10 不數迴圈就沒辦法分析了?技豈是如此不便之物 終章

均攤分析練習 今天如昨天最後所說,要再帶一個均攤分析的練習,今天要練習的範例相當經典,而且各大程式語言中像陣列的資料結構均是利用了該分析的結論來實作相關的成員函...

2023-09-25 ‧ 由 暗魂駭客 分享