寫程式的基本功:搜尋演算法(Search Algorithm) 2019 年 5 月 22 日 Magic Len 研究分享、 演算法 這裡所稱的搜尋(Search),是指在一個已排序好或是尚未排序好的集合中,將指定元素的鍵值(key)或是索引值(index)搜尋出來,或者是給定某個條件,在集合中搜索出符合該條件的資料。在集合內搜尋元素的方法當然不會只有一種,而不同方法搜尋資料的難易度、速度和其它特性自然也會有所不同。搜尋演算法(Search Algorithm)就是搜尋資料的方法,目前已知的方法有很多,在這篇文章中將會整理本站所... 繼續閱讀
暴力字串搜尋(Brute-force Substring Search)演算法,簡單粗暴地在一個字串中尋找子字串 2019 年 5 月 20 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 暴力字串搜尋(Brute-force Substring Search)演算法是最基本的字串搜尋演算法。它可以按照原文中字元的順序,逐一與搜尋樣本(pattern)進行比對,判斷目前的搜尋位置是否就是搜尋樣本存在的位置。 繼續閱讀
插補搜尋(Interpolation Search)演算法,運用資料近似線來輔助搜尋的演算法 2019 年 5 月 18 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 插補搜尋(Interpolation Search)演算法又稱為內插搜尋演算法,是二元搜尋(Binary Search)演算法的變體。這套演算法可以在已排序好的序列中根據資料的預測線或近似線來進行高效率的搜尋,近似線愈精準,搜尋的效率就愈高。 繼續閱讀
指數搜尋(Exponential Search)演算法,搜尋目標在序列愈前面就愈快的演算法 2019 年 5 月 16 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 指數搜尋(Exponential Search)演算法又稱為雙倍搜尋(Doubling Search)演算法或是蔓延搜尋(Galloping Search)演算法,是二元搜尋(Binary Search)演算法的變體。這套演算法可以在已排序好的序列中進行高效率的搜尋,要搜尋的元素在序列中愈前面的話,搜尋效能愈好。 繼續閱讀
二元搜尋(Binary Search)演算法,簡單又快速的搜尋演算法 2019 年 5 月 14 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 二元搜尋(Binary Search)演算法又稱為二分搜尋(Half-Interval Search)演算法或是對數搜尋(Logarithmic Search)演算法,顧名思義,這套演算法的核心思想就在於「二分」,可以在已排序好的序列中進行高效率的搜尋。 繼續閱讀
線性搜尋(Linear Search)演算法,最基本的搜尋演算法 2019 年 5 月 12 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 線性搜尋(Linear Search)演算法又稱為循序搜尋(Sequential Search)演算法,是學習程式語言最先需要學會的搜尋演算法。它可以按照元素在資料結構中的順序,從頭開始進行走訪,並連續判斷目前走訪到的元素是否是我們想要找的元素。 繼續閱讀
如何在Rust程式語言上使用類似Java的Scanner來讀取文字串流? 2019 年 5 月 10 日 Magic Len Rust Java程式語言的java.util.Scanner是一個非常方便的類別,可以用來讀取任意的字串或是串流中的文字資料,它也是剛開始學習Java的人通常會第一個使用到的java.util套件中的類別。而Rust的標準函式庫中並沒有提供像是Java的Scanner這樣方便好用的模組,大多就是用已經有實作好Read特性的結構實體所提供的read、read_to_end、read_to_string等低階... 繼續閱讀
Java到底會把哪些字元當作是空白字元? 2019 年 5 月 8 日 Magic Len 研究分享、 Java Java的Character類別提供了isWhitespace方法,可以用來判斷指定的字元是否是空白字元,然而這邊判斷的空白字元並不單純只是我們從鍵盤按下空白鍵所出現的「 」(字元值為32),而是還包括TAB字元、換行字元等等會讓文字在顯示時被空白區域隔開的字元。正規表示式所使用的「javaWhitespace」樣本(pattern)的空白字元判斷標準與Character.isWhitespace... 繼續閱讀
如何修改Linux TTY的螢幕解析度? 2019 年 5 月 6 日 Magic Len Linux 如果沒有替Linux作業系統安裝桌面環境的話,在Linux作業系統開機之後,預設會進入TTY主控台畫面。有時預設的TTY畫面所套用的螢幕解析度並不是我們想要的,若要修改螢幕解析度的話可以參考本篇文章。 繼續閱讀
想要用自己的電腦耍酷嗎?那就用 cmatrix 在Unix-like作業系統上模擬駭客任務的電腦畫面吧! 2019 年 5 月 4 日 Magic Len 軟體介紹 駭客任務(The Matrix)是好萊塢有名的科幻系列電影,除了經典的慢動作躲子彈外,電影中還有個經常用到的特效──在黑色背景的畫面中,有許多排綠色文字不規則地從上到下移動──這個特效稱為「代碼瀑布」。透過cmatrix這支開源程式,可以輕鬆在Linux作業系統上模擬出駭客任務的代碼瀑布畫面。 繼續閱讀