首先,先來講什麼是演算法 (Algorithm) 演算法 是一個「逐步、明確且有限的計算規則或步驟」。 接收單個或多個的 輸入 (input)。 經過 明確定...
最大公因數(GCD) 假設現在有兩個數 A、B,他們都可以被一個數字 d 整除,那這個 d 是 A 的因數,同時也是 B 的因數,那我們就可以說 d 是 A、B...
排序,是演算法中的基礎,也很常會在生活中用到,像是整理書籍、學校的學號排列等等。 在排序中,一開始也會需要先決定要 升序 (Ascending) 還 降序...
昨天講了插入排序法,今天就接著介紹選擇排序法 (Selection Sort) & 氣泡排序法 (Bubble Sort),兩個基礎的排序演算法。(以下...
很多人都說遞迴,簡單來講就是函式自己叫自己,也有人說他很直觀好理解,但其實我當初理解起來挺困難的... 所以我們這裡先從數學的東西來開始理解,給定一個遞迴關係式...
昨天學習了遞迴 (Rcursion),今天來學習可以用遞迴實作的合併排序 (Merge Sort)。 基本概念 合併排序法會有以下步驟: 分割: 把陣列對半...
在 Day1 我們有提到過 Francis Sullivan 說的什麼是好的演算法,我覺得很讚~ For me, great algorithms are t...
昨天介紹怎麼計算最壞執行次數 T(n),今天來介紹 O 表示法、Ω 表示法、Θ 表示法 這三個重要的東西。 這三個希臘字母為演算法漸進效率重要的表示法,在演算法...
前兩天我們討論了演算法的時間複雜度,今天開始學習 資料結構 (Data Structures)。 後面會介紹一些基本的資料結構,而今天會從最基本、最常見的結構開...
昨天介紹了 陣列 和 矩陣,今天來介紹也很常見的 鏈結串列 (Linked List)。 Linked List 也有分成幾種: 單向鏈結串列 (Singl...