資料結構筆記(6)排序

2021-08-14 03:37:47 字數 644 閱讀 2668

基於比較的排序——前提:

選擇排序

演算法:

資料移動是最少的:每次交換都會改變兩個陣列元素的值,選擇排序用了n次交換。交換次數和陣列的大小是線性關係。

**實現

void choosesort(int a,int n)

/** 交換元素 */

int tmp=a[j];

a[j]=a[min];

a[min]=tmp;

/** 更新最小元的資訊,從第二個元素開始查詢 */

j++;

min=j;

}}

插入排序(insertion sort)

演算法:

演算法特點:

**實現:

void insertsort(int a,int n)

}

希爾排序(shellsort)(衝破二次時間屏障的第一批演算法之一)

演算法:

時間複雜度分析:

使用hibbard增量的希爾排序最壞情形執行時間為o(n^(3/2))。

圖例:**實現:

void shellsort(int a,int n)

}

資料結構與演算法之路 6(排序)

一 排序方法與複雜度歸類 1 幾種最經典 最常用的排序方法 氣泡排序 插入排序 選擇排序 快速排序 歸併排序 計數排序 基數排序 桶排序。2 複雜度歸類 氣泡排序 插入排序 選擇排序 o n 2 快速排序 歸併排序 o nlogn 計數排序 基數排序 桶排序 o n 二 如何分析乙個 排序演算法 1...

資料結構1 排序

就算複習再緊張,也要動手實踐資料結構中的基本演算法,徹底理解演算法的本質。不要讓任何理由成為不程式設計的藉口。從快速排序開始,將演算法問題一一攻克。複習提綱 基本資料結構 棧和佇列,陣列和鍊錶 樹和二叉樹 二叉查詢樹 平衡二叉樹 雜湊表 排序演算法 選擇排序 氣泡排序和快速排序 堆和堆排序 計數排序...

資料結構 07 排序

簡單的排序方法 氣泡排序 選擇排序 插入排序 希爾排序。先進的排序方法 歸併排序 快速排序 堆排序 基數排序。1.演算法思想 每次在未排序的元素中兩兩比較找最大值,邊找邊從後往前儲存 未排序.第i大 第2大 第1大 一般情況,整個氣泡排序只需進行 k 1 k氣泡排序結束的條件是 在某一趟排序過程中沒...