暴力字串搜尋(Brute-force Substring Search)演算法,簡單粗暴地在一個字串中尋找子字串 2019 年 5 月 20 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享暴力字串搜尋(Brute-force Substring Search)演算法是最基本的字串搜尋演算法。它可以按照原文中字元的順序,逐一與搜尋樣本(pattern)進行比對,判斷目前的搜尋位置是否就是搜尋樣本存在的位置。繼續閱讀 Brute-force Substring Search、Search Algorithm、字串搜尋、字串搜尋演算法、搜尋演算法、暴力字串搜尋、暴力字串搜尋法、暴力字串搜尋演算法
插補搜尋(Interpolation Search)演算法,運用資料近似線來輔助搜尋的演算法 2019 年 5 月 18 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享插補搜尋(Interpolation Search)演算法又稱為內插搜尋演算法,是二元搜尋(Binary Search)演算法的變體。這套演算法可以在已排序好的序列中根據資料的預測線或近似線來進行高效率的搜尋,近似線愈精準,搜尋的效率就愈高。繼續閱讀 Interpolation Search、Search Algorithm、內插搜尋、內插搜尋法、內插搜尋演算法、插補搜尋、插補搜尋法、插補搜尋演算法、搜尋演算法
指數搜尋(Exponential Search)演算法,搜尋目標在序列愈前面就愈快的演算法 2019 年 5 月 16 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享指數搜尋(Exponential Search)演算法又稱為雙倍搜尋(Doubling Search)演算法或是蔓延搜尋(Galloping Search)演算法,是二元搜尋(Binary Search)演算法的變體。這套演算法可以在已排序好的序列中進行高效率的搜尋,要搜尋的元素在序列中愈前面的話,搜尋效能愈好。繼續閱讀 Exponential Search、Search Algorithm、指數搜尋、指數搜尋法、指數搜尋演算法、搜尋演算法、蔓延搜尋、蔓延搜尋法、蔓延搜尋演算法、雙倍搜尋、雙倍搜尋法、雙倍搜尋演算法
二元搜尋(Binary Search)演算法,簡單又快速的搜尋演算法 2019 年 5 月 14 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享二元搜尋(Binary Search)演算法又稱為二分搜尋(Half-Interval Search)演算法或是對數搜尋(Logarithmic Search)演算法,顧名思義,這套演算法的核心思想就在於「二分」,可以在已排序好的序列中進行高效率的搜尋。繼續閱讀 Binary Search、Half-Interval Search、Logarithmic Search、Search Algorithm、二元搜尋、二元搜尋法、二元搜尋演算法、二分搜尋、二分搜尋法、二分搜尋演算法、二分法、對數搜尋、對數搜尋法、對數搜尋演算法、搜尋演算法
線性搜尋(Linear Search)演算法,最基本的搜尋演算法 2019 年 5 月 12 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享線性搜尋(Linear Search)演算法又稱為循序搜尋(Sequential Search)演算法,是學習程式語言最先需要學會的搜尋演算法。它可以按照元素在資料結構中的順序,從頭開始進行走訪,並連續判斷目前走訪到的元素是否是我們想要找的元素。繼續閱讀 Linear Search、Search Algorithm、Sequential Search、循序搜尋、循序搜尋法、循序搜尋演算法、搜尋演算法、暴力搜尋、線性搜尋、線性搜尋法、線性搜尋演算法
堆積排序(Heap Sort)演算法,利用完全二元樹來排序的演算法 2019 年 4 月 5 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享堆積排序(Heap Sort)演算法是利用完全二元樹(Complete Binary Tree),也就是堆積(Heap)結構來完成排序的演算法。雖然說要用到堆積結構,看起來好像很複雜似的,但其實這個只要一般的陣列結構(可以直接用要排序的陣列來製作)就能實作出來,而且實作出來的速度保證不會太慢,再怎麼差都會有O(nlogn)的時間複雜度。繼續閱讀 Complete Binary Tree、Heap Sort、Max Heap、Min Heap、Sorting Algorithm、堆積排序、堆積排序法、堆積排序演算法、完全二元樹、排序演算法、最大堆積、最小堆積
合併排序(Merge Sort)演算法,穩定、快速的排序演算法 2019 年 4 月 5 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享合併排序(Merge Sort)演算法是非常通用的排序演算法,是穩定排序,即便在最差的情況下也還有O(nlogn)的時間複雜度。繼續閱讀 Merge Sort、Sorting Algorithm、合併排序、合併排序法、合併排序演算法、排序演算法
希爾排序(Shell Sort)演算法,改良的插入排序法 2019 年 4 月 5 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享希爾排序(Shell Sort)演算法是插入排序(Insertion Sort)演算法的改良版。它解決了插入排序法一次只能把元素移動一個索引距離的問題,加入間距(gap)的概念來分批並分組完成插入排序法,有效提升原本插入排序法的速度。繼續閱讀 Shell Sort、Sorting Algorithm、優化插入排序、希爾排序、希爾排序法、希爾排序演算法、排序演算法
雞尾酒排序(Cocktail Sort)演算法,雙向的氣泡排序法 2019 年 4 月 5 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享雞尾酒排序(Cocktail Sort)演算法又稱為搖晃排序(Shaker Sort)演算法、雙向氣泡排序(Bidirectional Bubble Sort)演算法,顧名思義,它是氣泡排序(Bubble Sort)演算法的變體,將原本單向走訪的氣泡排序改為雙向,用以解決使用氣泡排序法時,序列中未排序的一端其實已經大致排序好,卻又不能儘快把它完成的情形。繼續閱讀 Bidirectional Bubble Sort、Cocktail Sort、Shaker Sort、Sorting Algorithm、優化氣泡排序、排序演算法、搖晃排序、搖晃排序法、搖晃排序演算法、雙向氣泡排序、雙向氣泡排序法、雙向氣泡排序演算法、雞尾酒排序、雞尾酒排序法、雞尾酒排序演算法
插入排序(Insertion Sort)演算法,一邊將元素加進序列、一邊進行排序的演算法 2019 年 4 月 5 日 Magic Len Go、Java、NodeJS、Rust、演算法、研究分享插入排序(Insertion Sort)演算法,是基本的排序演算法,是學習程式語言最先需要學會的排序演算法之一。插入排序法的用途廣泛,除了可以用來將新元素添加到已存在且已排序好的序列並維持其排序外,還可以用來排序尚未排序的序列。而且其排序結果是穩定的。繼續閱讀 Insertion Sort、Sorting Algorithm、排序演算法、插入排序、插入排序法、插入排序演算法