1. 程式人生 > >《數據結構》_10排序

《數據結構》_10排序

並排 空間 ID idt 找到 info mage 開始 com

排序的基本概念

重點考察穩定性、排序趟數、時間復雜度和空間復雜度。

排序算法類型一:簡單排序算法

1.簡單選擇排序

核心思想:每一趟排序,找到待排序序列中關鍵字最小的數據元素,將其與待排序序列中的第一個數據元素交換位置,並將其從下一趟待排序序列中移出,重復該過程,直到某趟排序時待排序序列中僅剩下兩個數據元素。

穩定性:不穩定

排序趟數:n-1

時間復雜度:最好最壞平均都是O(n2)

技術分享圖片

2.直接插入排序

核心思想:從只包含一個數據元素的有序序列開始,不斷地將待排序數據元素有序地插入這個有序序列中,直到有序序列包含了所有待排序數據元素為止。

穩定性:穩定

排序趟數:n-1

時間復雜度:平均時間復雜度O(n2

)

技術分享圖片

3.冒泡排序

核心思想:不斷交換相鄰逆序數據元素,重復該過程,直到任意相鄰數據元素不再逆序排列為止。

穩定性:穩定

排序趟數:n-1

時間復雜度:平均時間復雜度:O(n2)

技術分享圖片

排序算法類型二:快速排序算法

穩定性:不穩定

排序趟數:n-1

平均時間復雜度:O(n*log2n)

技術分享圖片

排序算法類型三:兩路合並排序

核心思想:初始時將待排序的n個數據元素看作n個待合並有序序列,每個序列中只包含一個數據元素;將每m個待合並序列合並成一個大的有序序列:重復合並過程,直到所有的數據元素都屬於同一個有序序列為止。

穩定性:穩定

排序趟數:log2n向上取整

平均時間復雜度:O(n*log2

n)

技術分享圖片

《數據結構》_10排序