[DSA] 排序Sort 方式整理

排序算法是計算機科學中最基礎且最重要的主題之一。以下是一些常見的排序方法,以及它們的簡要描述:


1. **冒泡排序 (Bubble Sort)**

   - 方法:重複地遍歷數組,每次比較兩個相鄰的元素,如果它們的順序錯誤就交換它們。

   - 時間複雜度:最差、平均和最好情況下都是 O(n^2)。


2. **選擇排序 (Selection Sort)**

   - 方法:在未排序的部分中找到最小(或最大)的元素,然後將其放到排序部分的開頭。

   - 時間複雜度:最差、平均和最好情況下都是 O(n^2)。


3. **插入排序 (Insertion Sort)**

   - 方法:從第一個元素開始,重複地取出一個元素並將其插入到前面已排序的部分的正確位置中。

   - 時間複雜度:最差情況下是 O(n^2),但對於部分排序的數組,其性能可以達到近似 O(n)。


4. **快速排序 (Quick Sort)**

   - 方法:選擇一個'基準'元素,並將數組分為小於基準和大於基準的兩部分,然後遞迴地對這兩部分進行排序。

   - 時間複雜度:平均和最好情況下是 O(n log n),但最差情況下是 O(n^2)。


5. **合併排序 (Merge Sort)**

   - 方法:將數組分成兩半,遞迴地對每一半進行排序,然後合併這兩部分。

   - 時間複雜度:在最差、平均和最好情況下都是 O(n log n)。


6. **堆排序 (Heap Sort)**

   - 方法:使用數組創建一個最大堆 (max heap) 或最小堆 (min heap),然後一次取出堆的最大(或最小)元素,直到堆為空。

   - 時間複雜度:在最差、平均和最好情況下都是 O(n log n)。


7. **希爾排序 (Shell Sort)**

   - 方法:是插入排序的一個變體,其中元素首先被分成多個子列表,這些子列表使用插入排序進行排序,隨著算法的進行,子列表的大小逐漸減小。

   - 時間複雜度:因子列表的選擇和大小而異,但對於許多實際的數據集,其性能通常優於 O(n^2)。


這些只是眾多排序算法中的一部分。每種排序算法都有其自己的優點和缺點,適用於不同的情境和需求。



從前輩的LeetCode筆記中 排序相關的題目

Sort algorithm
排序 Sort:”215. Kth Largest Element in an Array” 是一題考查排序的題目。

留言

Google Search

推薦內容橫式

本月熱門文章

國民黨陳玉珍翁曉玲自肥條款 可望再出現連戰兩億公務員? 各種荒腔走板的陳玉珍、翁曉玲 真是令人傻眼

[FAANG面試] Amazon/AWS 領導力準則 14 Amazon Leadership Principles

悲痛!XREX區塊鏈金融犯罪調查師陳梅慧Miffy殞落,揭露虛擬貨幣犯罪背後的黑幕

中華民國國軍辛苦了 因應中共軍演努力監視

20241123 BoA : One's Own in TAIPEI 難得一見的BoA來台灣演出

[FAANG面試] 如何準備Google Technical Program Manager (TPM) 面試

金融犯罪調查專家陳梅慧 離奇車禍死亡 疑點整理

ASMR 自主性感官經絡反應 用ASMR 音樂/影片 來助眠? 篠田優 Shinoda Yui 的ASMR影片

常見詐騙案例犯罪手法及預防方式一覽表 (持續更新)

大學生暑假打工 新北市政府 109 年度 大專青年公部門暑期工讀計畫

這個網誌中的熱門文章

Android應用開發豆知識:利用 adb 安裝 apk 到裝置上

Android 中文輸入法 官方版 ! Gboard - Google 鍵盤 開始支援注音輸入啦

Google Play 推薦Android app 誠徵App排行榜

北京故宮首訪,一窺清宮秘史 大玉兒 & 甄嬛

[家教][社會觀察] 建中教我的事 沒上建中被父母親折磨? 在建中到底是如何 ...

[FAANG面試] Amazon/AWS 領導力準則 14 Amazon Leadership Principles

Acer ICONIA Smart S300 更新後越來越好 Acer也有出手機?!

[品質控制] 什麼是Sanity test ? 軟體測試常見名詞整理 包含不同部門的測試人員負責範圍

新鮮人找工作:職場名詞解釋 AE FAE Pre-sales Post-sales