iT邦幫忙

鐵人檔案

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

每日攝取一點資料結構和演算法 系列

近期剛好在學習資料結構和演算法 ,畢竟看教學是沒有壓力的,但要產出文章就不一樣了(笑),因此這一系列的文章會比較像我的學習筆記,藉由鐵人賽來促使自己整理這些學過的內容,並且訓練自己如何用比較簡單易懂的方式將這些抽象的概念表達出來。

鐵人鍊成 | 共 30 篇文章 | 30 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day21:[排序演算法]Heap Sort - 堆積排序法

heap sort的原理是採用max heap這種資料結構來做排序,max heap是一種binary tree,每個節點都會比自己的子節點還大,因此根節點會是...

2021-09-21 ‧ 由 Lieutenant 分享
DAY 22

Day22:[排序演算法]Merge sort - 合併排序法

Merge Sort採用分治法(Divide and Conquer)的方式來處理排序的問題,簡單介紹一下分治法執行的步驟如下 Divide:先將大問題不斷切...

2021-09-22 ‧ 由 Lieutenant 分享
DAY 23

Day23:Greedy Algorithm - 貪婪演算法

貪婪演算法(英語:greedy algorithm),又稱貪心演算法,是一種在每一步選擇中都採取在當前狀態下最好或最佳(即最有利)的選擇,從而希望導致結果是...

2021-09-23 ‧ 由 Lieutenant 分享
DAY 24

Day24:Enumeration - 列舉法

列舉法又稱為窮舉法,簡單來說就是把所有可能發生的狀況都列出來,再根據問題提供的條件,從中找出符合條件的解答,也就是所謂的暴力破解法,優點是簡單直觀,缺點就是當...

2021-09-24 ‧ 由 Lieutenant 分享
DAY 25

Day25:Dynamic Programming(DP) - 動態規劃(上)

在認識動態規劃之前先來理解Divide and Conquer(分治法)吧!Divide and Conquer是一種演算法,執行的步驟如下 Divide:先...

2021-09-25 ‧ 由 Lieutenant 分享
DAY 26

Day26:Dynamic Programming(DP) - 動態規劃(下)

Dynamic Programmin的經典應用除了斐波那契數之外,還有背包問題、最短路徑問題、河內塔、LCS等等,那麼我們就試著用Dynamic Program...

2021-09-26 ‧ 由 Lieutenant 分享
DAY 27

Day27:Backtracking -回溯法

回溯法是暴力破解法的一種,在列出各種可能的組合時,如果遇到不符合條件的就不再繼續向下查找,而是回到上層繼續尋找其他可能,聽起來有點抽象,可以想像有很多條岔路可...

2021-09-27 ‧ 由 Lieutenant 分享
DAY 28

Day28:八皇后問題- 8 Queens Puzzle

八皇后問題可以說是一道相當經典的演算法題目,以西洋棋為背景,如何在一個8x8的棋盤上擺放八個皇后的棋子,讓任何一個皇后無法吃掉其中一個皇后,也是就是任何一個皇...

2021-09-28 ‧ 由 Lieutenant 分享
DAY 29

Day29:刷起來! leetcode

leetcode可以說是工程師的試煉場,收集了許多公司的面試考題,可說是題海無涯,那麼就開始刷題之旅吧! leetcode可以直接用github帳號登入,不用另...

2021-09-29 ‧ 由 Lieutenant 分享
DAY 30

Day30:完賽心得

終於來到了最後一天,必須說這個月有種自己在作大學報告的錯覺,每天看很多參考資料,英文閱讀能力又提升了,其實學習過程中也是少不了挫敗感,有些觀念要反覆看好幾次才...

2021-09-30 ‧ 由 Lieutenant 分享