六分鐘看完15 種排序演算法,其中幾種好療癒 - Noob's Space
文章推薦指數: 80 %
std::stable_sort:C++ 中提供的排序法,但能夠保證相等的元素不更動原先的順序。
希爾排序法(Shell Sort):希爾排序法為插入排序法的改良,一樣將 ...
常常聽過各式各樣的排序演算法,但你真的知道這些演算法是怎麼排序的嗎?
快來看看TimoBingmann做的六分鐘小短片,一次看懂十五個排序演算法!
影片中用到的十五種排序法:
選擇排序法(SelectionSort):一種較直觀的排序演算法,將資料分為已排序和未排序兩個部分,一直從未排序找出最大和最小值放入已排序的部分,直到未排序資料用完為止。
插入排序法(InsertionSort):一樣將資料分為已排序和未排序兩個部分,依序將未排序的第一筆插入已排序中的適當位置。
快速排序法(QuickSort–LRptrs):選擇一個基準值,把比基準值大的都放右邊、比基準值小的都放左邊。
接著針對左邊的部分和右邊的部分各進行一次以上動作(遞迴)。
合併排序法(MergeSort):將兩個已排序的序列合併成一個序列。
堆積排序法(HeapSort):堆積排序法算是選擇排序法的改良,透過使用二元樹的技巧,減少選擇排序中的比較次數,進而減少排序時間。
基數排序法-由右至左(RadixSort–LSD):將所有待比較數值(正整數)統一為同樣的數位長度,數位較短的數前面補零。
然後,從最低位開始,依次進行一次排序。
這樣從最低位排序一直到最高位排序完成以後,數列就變成一個有序序列。
影片的這個部分看起來蠻療癒的XD
基數排序法-由左至右(RadixSort–MSD):
同上,只是由右往左比較。
std::sort:C++中提供的升序排序法。
std::stable_sort:C++中提供的排序法,但能夠保證相等的元素不更動原先的順序。
希爾排序法(ShellSort):希爾排序法為插入排序法的改良,一樣將資料分為已排序和未排序兩個部分,但每次排序時會利用前次排序的結果。
泡泡排序法(BubbleSort):一次比較兩個元素,遇到順序錯誤就交換過來,一直到沒有需要交換的數列。
這個演算法名字的由來是因為越小的元素會經由交換慢慢浮到數列的頂端。
雞尾酒排序法、搖晃排序法(CocktailShakerSort):又叫雙向氣泡排序法,為氣泡排序法的改良。
將資料分成未排序、已排序兩個部分,並利用氣泡排序法將未排序中的最大值移動到未排序的最右邊、未排序中的最小值移動到未排序的最左邊。
地精排序法(GnomeSort):由左往右檢查,遇到比較小的就把該值從最左邊開始比較,並放到對的地方。
分段排序網路(BitonicSort):一種不依賴數據的排序方法(?),待補充。
但這部分也很可愛XD
猴子排序法(BogoSort):一個既不實用又原始的排序法,原理等同將一堆卡片拋起,落在桌上後再檢查卡片是否已整齊排列好,若非就再拋一次。
基本上來亂的,但概念和無限猴子定理有點類似(指一群猴子隨機亂打而打出一份Java程式碼的機率極低,但不是零)。
我們正降低廣告比例以提升閱讀體驗。
如果你喜歡這篇文章,不妨按下Like按鈕或分享到社群,以行動支持我寫更多文章。
當然,你也可以
點此用新臺幣支持我,或
點此透過BTC、ETH、USDC等加密貨幣支持我。
分享到:
也想架個不錯的部落格,寫些不錯的文章嗎?
本站熱門文章:
如何拍下螢幕畫面?截圖別再截全螢幕了!
API實作(一):規劃RESTfulAPI要注意什麼
一補數與二補數
ufw:簡易防火牆設置
常見的五個開源專案授權條款,使用軟體更自由
技術好康:
免費100USD額度|DigitalOcean:俗擱大碗的VPS空間,是時候該做點更進階的事了?
只要一折,5USD用5年|IvacyVPN
HostedonDigitalOcean
MovaviVideoConverter支援180種影片格式,有Windows和Mac兩種版本,除了簡單的影片轉檔外,這軟體也支援外掛字幕到影片中,更支援AI無損放大功能!
TDX運輸資料流通服務平臺,是交通部為落實智慧運輸政策而制定的資料整合服務平臺。
平臺上可以取得「公共運輸整合資訊」,包含公車、火車、自行車等等資訊,也可以取得「即時路況與停車資訊」,例如高速公路路況、高速公路看板上的資訊、各縣市停車場剩餘車位數等等。
TDX平臺也提供了路段編碼、圖資定位等服務,例如輸入經緯度得到這個地點的路名、輸入地址取得經緯度服務等等,基本上所有跟交通有關的API服務都整合起來了。
MovaviVideoEditorPlus是一款新的影片剪輯軟體,不管你只是想要單純的影片剪接、上字幕,還是加上影片特效、濾鏡、綠幕去背,都可以使用這款軟體來製作影片。
延伸文章資訊
- 1在C++ 標準模板庫(STL) 中排序 - Delft Stack
我們以遞增、遞減或使用者定義(自定義排序)的方式排列資料。 我們可以在C++ 中使用 sort() 函式對陣列或STL 容器(如vector、set、map 等)進行排序。
- 2排序(Sort)+搜尋(Search) 演算法
學習目標(進階程式-C++程式實作). 壹、認識排序(Sort)演算法. 氣泡排序法(Bubble Sort). 選擇排序法(Select Sort). 插入排序法(Insert Sort).
- 3C 語言排序演算法實作整理:泡沫排序、快速排序等 - GT Wang
泡沫排序法*/ void bubble_sort(int arr[], int n) { for (int i = 0; i < n; ++i) { for (int j = 0; j < i;...
- 4六分鐘看完15 種排序演算法,其中幾種好療癒 - Noob's Space
std::stable_sort:C++ 中提供的排序法,但能夠保證相等的元素不更動原先的順序。 希爾排序法(Shell Sort):希爾排序法為插入排序法的改良,一樣將 ...
- 5[Day22]程式菜鳥自學C++資料結構演算法– 氣泡排序法(Bubble ...
[Day22]程式菜鳥自學C++資料結構演算法– 氣泡排序法(Bubble Sort) ... 也就是說,排序的工作就是執行鍵值得比較和交換,使得鍵值的順序能重新排列。