寫程式的基本功:排序演算法(Sorting Algorithm) 2016 年 5 月 16 日 Magic Len 研究分享、 演算法 這裡所稱的排序(Sorting),是指將一串不規則的序列資料(如陣列資料)依照遞增或是遞減的方式重新編排。要將一串不規則的數值資料遞增或是遞減排列,方法當然不會只有一種,而不同方法排列資料的難易度、速度和其它特性自然也會有所不同。排序演算法(Sorting Algorithm)就是排列資料的方法,目前已知的方法有很多,在這篇文章中將會整理本站所介紹過的大部份排序演算法。 繼續閱讀
Boyer-Moore-MagicLen(BM-MagicLen)字串搜尋演算法,超快速的全文搜尋演算法 2016 年 4 月 9 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 在一篇很長的文章或是一大串文字中找出自己想看到的段落是我們時常會需要做的事情,但是要如何有效率地讓電腦尋找文字中的文字是一件需要思考的事情,甚至有許多針對這個議題所提出的研究論文。字串搜尋演算法的好壞,在複雜的文件內容下,對搜尋時間的影響是非常深遠的。字串搜尋除了能夠正確搜尋一段文字內的特定字串外,還可以用來搜尋龐大的任意資料,因為任何的資料都可以藉由數位編碼轉成只有數字的字串,如一段原始的聲音,... 繼續閱讀
分頁替換演算法(Page Replacement Algorithm)介紹與模擬 2015 年 12 月 15 日 Magic Len 作品分享、 作業系統、 研究分享、 軟體介紹、 Java、 演算法 作業系統(OS, Operating System)對於記憶體(Memory)管理的方式有許多種,這篇文章將會說明當使用分頁(Paging)的方法管理記憶體時,若發生了分頁錯誤(Page fault),作業系統要如何找到一個適當的分頁(Page),並將其取代成新的內容,儘量讓未來發生分頁錯誤的機會降到最低。 繼續閱讀