[Algorithm] Fibonacci numbers (費波那契數列)

Fibonacci numbers 說明 以下轉自維基 斐波那契数列 費氏數列由0和1開始,之後的斐波那契數就是由之前的兩數相加而得出。首幾個斐波那契數是: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233……(OEIS中的數列A000045) 特別指出:0不是第一項,而是第零項。 範例程式碼 Ruby 範例 附上 Ruby 的 online sandbox,有興趣可以把 code 貼進去玩玩看 def fibonacci(num) »

[Algorithm] Binary Search (二分搜尋法)

Binary Search 說明 以下轉自維基 二分搜尋演算法 在有序陣列中搜尋某一特定元素的搜尋演算法 搜尋過程從陣列的中間元素開始,如果中間元素正好是要搜尋的元素,則搜尋過程結束;如果某一特定元素大於或者小於中間元素,則在陣列大於或小於中間元素的那一半中搜尋,而且跟開始一樣從中間元素開始比較。如果在某一步驟陣列為空,則代表找不到。這種搜尋演算法每一次比較都使搜尋範圍縮小一半 每次都從中位數切半,尋找有沒有包含指定數字 範例程式碼 Ruby 範例 附上 Ruby 的 online »

[Algorithm] Selection Sort (選擇排序法)

前言 因公司業務受疫情影響, 在 7 月中解散工程團隊 至今也休息了一個多月 最近開始複習一些經典演算法, 順便做個筆記 Selection Sort 說明 以下轉自維基 選擇排序 在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。 簡單說就是,將資料分成已排序、未排序 由未排序中找最小值(or 最大值),加入到已排序部份的末端 最後已排序結果會是由小到大(or »

[Ruby] Announcing RubyGems stats

RubyGems 的團隊將一些使用資訊整理在 stats.rubygems.org 可以看到各時間區間,每個版本、平台的使用率,蠻有趣的 XD RubyGems.org 每天產生的 log 大約 500GB,非常驚人的量 他們使用 rust 做 parse log 的處理,相關文章的連結都附在文末 Ref: Announcing RubyGems.org Stats Parsing logs 230x faster with Rust ecosystem source kirby »