二元搜尋(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... 繼續閱讀
1A2B猜數字(公牛和母牛)的遊戲框架 2019 年 4 月 30 日 Magic Len Rust 1A2B猜數字,原名為公牛和母牛(Bulls and Cows),算是一種益智類小遊戲,一般是兩個人玩。遊戲規則雖然很簡單,卻十分考驗人的智力和毅力。 繼續閱讀
如何用Rust程式語言搭配MongoDB來儲存檔案? 2019 年 4 月 29 日 Magic Len Rust MongoDB是文件導向的資料庫,適合用來儲存無需複雜查詢的大量資料,也可以用來儲存檔案。未超過16793600位元組(約16MB)的BSON文件能直接存在一般的集合(collection)之中,如果將檔案放進BSON文件中且沒有超過大小限制的話,則檔案可以直接存進一般的集合;如果文件會超過16793600位元組,也可以使用MongoDB提供的GridFS功能,自動將檔案切割成多個組塊(chunk... 繼續閱讀
GNU Make 的基本使用方式 2019 年 4 月 20 日 Magic Len 程式設計、 Linux GNU Make (Makefile)是經常被用於程式原始碼專案中,幫助使用者編譯原始碼的建置工具。在Makefile中,可以分別替不同的原始碼檔案定義其編譯的方式(編譯所使用的指令),GNU Make在編譯原始碼專案時,就會依照原始碼是否有在產生目的檔案後又被修改(依賴文件的修改日期比目的檔案的修改日期來得晚),來自動判斷是否真的需要再重新編譯原始碼,以省下重複編譯的時間。 繼續閱讀
堆積排序(Heap Sort)演算法,利用完全二元樹來排序的演算法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 堆積排序(Heap Sort)演算法是利用完全二元樹(Complete Binary Tree),也就是堆積(Heap)結構來完成排序的演算法。雖然說要用到堆積結構,看起來好像很複雜似的,但其實這個只要一般的陣列結構(可以直接用要排序的陣列來製作)就能實作出來,而且實作出來的速度保證不會太慢,再怎麼差都會有O(nlogn)的時間複雜度。 繼續閱讀
合併排序(Merge Sort)演算法,穩定、快速的排序演算法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 合併排序(Merge Sort)演算法是非常通用的排序演算法,是穩定排序,即便在最差的情況下也還有O(nlogn)的時間複雜度。 繼續閱讀
希爾排序(Shell Sort)演算法,改良的插入排序法 2019 年 4 月 5 日 Magic Len 研究分享、 Go、 Java、 Rust、 演算法、 JavaScript 希爾排序(Shell Sort)演算法是插入排序(Insertion Sort)演算法的改良版。它解決了插入排序法一次只能把元素移動一個索引距離的問題,加入間距(gap)的概念來分批並分組完成插入排序法,有效提升原本插入排序法的速度。 繼續閱讀