近期剛好在學習資料結構和演算法 ,畢竟看教學是沒有壓力的,但要產出文章就不一樣了(笑),因此這一系列的文章會比較像我的學習筆記,藉由鐵人賽來促使自己整理這些學過的內容,並且訓練自己如何用比較簡單易懂的方式將這些抽象的概念表達出來。
heap sort的原理是採用max heap這種資料結構來做排序,max heap是一種binary tree,每個節點都會比自己的子節點還大,因此根節點會是...
Merge Sort採用分治法(Divide and Conquer)的方式來處理排序的問題,簡單介紹一下分治法執行的步驟如下 Divide:先將大問題不斷切...
貪婪演算法(英語:greedy algorithm),又稱貪心演算法,是一種在每一步選擇中都採取在當前狀態下最好或最佳(即最有利)的選擇,從而希望導致結果是...
列舉法又稱為窮舉法,簡單來說就是把所有可能發生的狀況都列出來,再根據問題提供的條件,從中找出符合條件的解答,也就是所謂的暴力破解法,優點是簡單直觀,缺點就是當...
在認識動態規劃之前先來理解Divide and Conquer(分治法)吧!Divide and Conquer是一種演算法,執行的步驟如下 Divide:先...
Dynamic Programmin的經典應用除了斐波那契數之外,還有背包問題、最短路徑問題、河內塔、LCS等等,那麼我們就試著用Dynamic Program...
回溯法是暴力破解法的一種,在列出各種可能的組合時,如果遇到不符合條件的就不再繼續向下查找,而是回到上層繼續尋找其他可能,聽起來有點抽象,可以想像有很多條岔路可...
八皇后問題可以說是一道相當經典的演算法題目,以西洋棋為背景,如何在一個8x8的棋盤上擺放八個皇后的棋子,讓任何一個皇后無法吃掉其中一個皇后,也是就是任何一個皇...
leetcode可以說是工程師的試煉場,收集了許多公司的面試考題,可說是題海無涯,那麼就開始刷題之旅吧! leetcode可以直接用github帳號登入,不用另...
終於來到了最後一天,必須說這個月有種自己在作大學報告的錯覺,每天看很多參考資料,英文閱讀能力又提升了,其實學習過程中也是少不了挫敗感,有些觀念要反覆看好幾次才...