基本排序演算法

2021-08-15 15:47:22 字數 709 閱讀 3355

1.氣泡排序:

排序基本思想:

乙個乙個的比較,將最大或者最小的數冒到最後面;

是穩定演算法

演算法時間複雜度:大於 n ^ 2;

// 預設從小到大

void mysort(int num, int len)

} }}

1.選擇排序:

排序基本思想:

乙個乙個的比較,將最大或者最小的數冒到最前面;

演算法時間複雜度: n ^ 2; 由於交換次數比較少(一般快冒泡6倍)

是穩定演算法

// 預設從小到大

void mysort(int num, int len)

} num[index] = num[i];

num[i] = temp;

}}

1.插入排序:

排序基本思想:

基於有序數列的排序,將大於(小於)的數插入到對應位置;

演算法時間複雜度: n ^ 2;

是穩定演算法

(略微優於冒泡)在特定情況下用非常好;比如輸入時進行插入排序就會有非常好的效果

// 預設從小到大

void mysort(int num, int len)

// 插入在應插入的位置

num[j+1] = temp;

}}

基本排序排序演算法

時空複雜度 氣泡排序 時間o n 2 額外空間o 1 插入排序 時間o n 2 額外空間o 1 選擇排序 時間o n 2 額外空間o 1 基數排序 時間o k n k logn max 額外空間o n 臨時儲存 o b 記數,b為基的大小 記數排序 時間o n k 額外空間o k 希爾排序 時間o ...

基本排序排序演算法

時空複雜度 氣泡排序 時間o n 2 額外空間o 1 插入排序 時間o n 2 額外空間o 1 選擇排序 時間o n 2 額外空間o 1 基數排序 時間o k n k logn max 額外空間o n 臨時儲存 o b 記數,b為基的大小 記數排序 時間o n k 額外空間o k 希爾排序 時間o ...

基本排序演算法

將要排序的物件分作兩部份,乙個是已排序的,乙個是未排序的,從後端未排序部份選擇乙個最小值,並放入前端已排序部份的最後乙個,例如 排序前 70 80 31 37 10 1 48 60 33 80 1 80 31 37 10 70 48 60 33 80 選出最小值1 1 10 31 37 80 70 ...