<?xml version="1.0" encoding="utf-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"><channel><title>MagicLen</title><link>https://magiclen.org/2019/05/feed</link><description>多元化原創文章，內容包羅萬象，有程式語言、網站應用、軟體介紹、硬體介紹、作業系統、旅行遊記、專題採訪、益智問題、文學創作，以及作者們的知識分享和作品分享。</description><language>zh-TW</language><lastBuildDate>Wed, 15 Apr 2026 21:34:06 +0000</lastBuildDate><sy:updatePeriod>hourly</sy:updatePeriod><sy:updateFrequency>8</sy:updateFrequency><sy:updateBase>1970-01-01T00:00+00:00</sy:updateBase><item><title>基數排序(Radix Sort)演算法，可以依據多個鍵值來排序的演算法</title><link>https://magiclen.org/radix-sort</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/05/1463382782_icon_23_one_finger_double_tap-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/05/1463382782_icon_23_one_finger_double_tap-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/05/1463382782_icon_23_one_finger_double_tap-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/05/1463382782_icon_23_one_finger_double_tap-660x486.png 3x" alt="">
基數排序(Radix Sort)演算法是可以利用多個鍵值來排序資料的演算法。排序還需要多個鍵值？有時候當然會需要啦！像是要排序檔案時，可以先依照檔案名稱排序後，再依照檔案大小來排，如此一來，整體上來看這些檔案，會是以檔案大小來排序，而相同檔案大小的檔案則是會依照檔案名稱來排序。基數排序法可以將整數的各個位數當作是鍵值，來進行線性時間的排序，比起會依照k(要排序的資料可能的值的數量)愈大而愈吃空間的...]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>排序演算法</category><category>Rust</category><category>基數排序</category><category>TypeScript</category><category>Go</category><guid>https://magiclen.org/radix-sort</guid><pubDate>Thu, 30 May 2019 20:00:25 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>桶排序(Bucket Sort)演算法，利用運算式將資料分類、排序後，再合併起來的排序演算法</title><link>https://magiclen.org/bucket-sort</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/05/1463382782_icon_23_one_finger_double_tap-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/05/1463382782_icon_23_one_finger_double_tap-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/05/1463382782_icon_23_one_finger_double_tap-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/05/1463382782_icon_23_one_finger_double_tap-660x486.png 3x" alt="">
桶排序(Bucket Sort)演算法是先將大量資料分類成少量資料後，再進行排序的演算法。可以透過簡單的運算式來完成資料的分類，在最好的情況之下，資料可以被完全打散，此時的時間複雜度就會是一個線性時間。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>排序演算法</category><category>Rust</category><category>桶排序</category><category>TypeScript</category><category>Go</category><guid>https://magiclen.org/bucket-sort</guid><pubDate>Sun, 26 May 2019 12:00:30 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>寫程式的基本功：搜尋演算法(Search Algorithm)</title><link>https://magiclen.org/search-algorithm</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-660x486.png 3x" alt="">
這裡所稱的搜尋(Search)，是指在一個已排序好或是尚未排序好的集合中，將指定元素的鍵值(key)或是索引值(index)搜尋出來，或者是給定某個條件，在集合中搜索出符合該條件的資料。在集合內搜尋元素的方法當然不會只有一種，而不同方法搜尋資料的難易度、速度和其它特性自然也會有所不同。搜尋演算法(Search Algorithm)就是搜尋資料的方法，目前已知的方法有很多，在這篇文章中將會整理本站所...]]></description><category>研究分享</category><category>演算法</category><category>字串搜尋</category><category>搜尋演算法</category><category>寫程式的基本功</category><guid>https://magiclen.org/search-algorithm</guid><pubDate>Wed, 22 May 2019 12:00:45 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>暴力字串搜尋(Brute-force Substring Search)演算法，簡單粗暴地在一個字串中尋找子字串</title><link>https://magiclen.org/brute-force-substring-search</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-660x486.png 3x" alt="">
暴力字串搜尋(Brute-force Substring Search)演算法是最基本的字串搜尋演算法。它可以按照原文中字元的順序，逐一與搜尋樣本(pattern)進行比對，判斷目前的搜尋位置是否就是搜尋樣本存在的位置。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>字串搜尋</category><category>暴力字串搜尋</category><category>Rust</category><category>搜尋演算法</category><category>TypeScript</category><category>Go</category><guid>https://magiclen.org/brute-force-substring-search</guid><pubDate>Mon, 20 May 2019 12:00:22 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>插補搜尋(Interpolation Search)演算法，運用資料近似線來輔助搜尋的演算法</title><link>https://magiclen.org/interpolation-search</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-660x486.png 3x" alt="">
插補搜尋(Interpolation Search)演算法又稱為內插搜尋演算法，是二元搜尋(Binary Search)演算法的變體。這套演算法可以在已排序好的序列中根據資料的預測線或近似線來進行高效率的搜尋，近似線愈精準，搜尋的效率就愈高。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>搜尋演算法</category><category>二元搜尋</category><category>插補搜尋</category><category>TypeScript</category><category>Go</category><guid>https://magiclen.org/interpolation-search</guid><pubDate>Sat, 18 May 2019 12:00:32 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>指數搜尋(Exponential Search)演算法，搜尋目標在序列愈前面就愈快的演算法</title><link>https://magiclen.org/exponential-search</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-660x486.png 3x" alt="">
指數搜尋(Exponential Search)演算法又稱為雙倍搜尋(Doubling Search)演算法或是蔓延搜尋(Galloping Search)演算法，是二元搜尋(Binary Search)演算法的變體。這套演算法可以在已排序好的序列中進行高效率的搜尋，要搜尋的元素在序列中愈前面的話，搜尋效能愈好。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>搜尋演算法</category><category>二元搜尋</category><category>指數搜尋</category><category>TypeScript</category><category>Go</category><guid>https://magiclen.org/exponential-search</guid><pubDate>Thu, 16 May 2019 12:00:42 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>二元搜尋(Binary Search)演算法，簡單又快速的搜尋演算法</title><link>https://magiclen.org/binary-search</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-660x486.png 3x" alt="">
二元搜尋(Binary Search)演算法又稱為二分搜尋(Half-Interval Search)演算法或是對數搜尋(Logarithmic Search)演算法，顧名思義，這套演算法的核心思想就在於「二分」，可以在已排序好的序列中進行高效率的搜尋。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>搜尋演算法</category><category>二元搜尋</category><category>TypeScript</category><category>Go</category><guid>https://magiclen.org/binary-search</guid><pubDate>Tue, 14 May 2019 12:00:35 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>線性搜尋(Linear Search)演算法，最基本的搜尋演算法</title><link>https://magiclen.org/linear-search</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/04/Searchicons-search-blogs-512-660x486.png 3x" alt="">
線性搜尋(Linear Search)演算法又稱為循序搜尋(Sequential Search)演算法，是學習程式語言最先需要學會的搜尋演算法。它可以按照元素在資料結構中的順序，從頭開始進行走訪，並連續判斷目前走訪到的元素是否是我們想要找的元素。]]></description><category>研究分享</category><category>Java</category><category>Rust</category><category>演算法</category><category>Go</category><category>JavaScript</category><category>Java</category><category>JavaScript</category><category>Rust</category><category>搜尋演算法</category><category>線性搜尋</category><category>TypeScript</category><category>Go</category><guid>https://magiclen.org/linear-search</guid><pubDate>Sun, 12 May 2019 12:00:11 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>如何在Rust程式語言上使用類似Java的Scanner來讀取文字串流？</title><link>https://magiclen.org/scanner-rust</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2018/04/rust-220x162.png 1x, https://magiclen.org/wp-content/uploads/2018/04/rust-440x324.png 2x, https://magiclen.org/wp-content/uploads/2018/04/rust-660x486.png 3x" alt="">
Java程式語言的java.util.Scanner是一個非常方便的類別，可以用來讀取任意的字串或是串流中的文字資料，它也是剛開始學習Java的人通常會第一個使用到的java.util套件中的類別。而Rust的標準函式庫中並沒有提供像是Java的Scanner這樣方便好用的模組，大多就是用已經有實作好Read特性的結構實體所提供的read、read_to_end、read_to_string等低階...]]></description><category>Rust</category><category>Rust</category><category>scanner-rust</category><guid>https://magiclen.org/scanner-rust</guid><pubDate>Fri, 10 May 2019 12:00:30 +0800</pubDate><dc:creator>Magic Len</dc:creator></item><item><title>Java到底會把哪些字元當作是空白字元？</title><link>https://magiclen.org/java-white-space</link><description><![CDATA[    <img src="https://magiclen.org/wp-content/uploads/2016/02/java-220x162.png" srcset="https://magiclen.org/wp-content/uploads/2016/02/java-220x162.png 1x, https://magiclen.org/wp-content/uploads/2016/02/java-440x324.png 2x, https://magiclen.org/wp-content/uploads/2016/02/java-660x486.png 3x" alt="">
Java的Character類別提供了isWhitespace方法，可以用來判斷指定的字元是否是空白字元，然而這邊判斷的空白字元並不單純只是我們從鍵盤按下空白鍵所出現的「 」(字元值為32)，而是還包括TAB字元、換行字元等等會讓文字在顯示時被空白區域隔開的字元。正規表示式所使用的「javaWhitespace」樣本(pattern)的空白字元判斷標準與Character.isWhitespace...]]></description><category>研究分享</category><category>Java</category><category>Java</category><guid>https://magiclen.org/java-white-space</guid><pubDate>Wed, 8 May 2019 12:00:20 +0800</pubDate><dc:creator>Magic Len</dc:creator></item></channel></rss>