穩定性定義
優缺點c++實現
模擬排序撲克牌,新牌《舊牌,舊牌依次後移
從第乙個位置開始比較,找出最小的,和第乙個位置互換,開始下一輪。
從左到右,陣列中相鄰的兩個元素進行比較,將較大的放到後面。每一趟排序,最大的數移到最後面,每一趟排序以此交換的次數會減一,因為每一趟排序後,有乙個數已經達到指定位置
eg:趟數元素0
5 4 3 2 1
14 5 3 2 1
14 3 5 2 1
14 3 2 5 1
14 3 2 1 5 第一趟排序5歸位,交換次數:n-1 = 4
23 4 2 1 5
23 2 4 1 5
23 2 1 4 5第二趟排序4歸位,交換次數:4-1=3
32 3 1 4 5
32 1 3 4 5第三趟排序3歸位,交換次數:3-1=2
41 2 3 4 5第四趟排序2歸位,交換次數:2-1=1
舉個例子:5,8,5,2,9 我們知道第一遍選擇排序第乙個元素5會和2交換,那麼原序列中2個5的相對位置前後順序就破壞了
這三種演算法的優點簡單,缺點慢
型別平均
最好最壞
輔助儲存
穩定性直接插入
o(n
2n^2
n2)o(n)
o(n 2)
n^2)
n2)1
穩定直接選擇
o(n
2n^2
n2)o(n
2o(n^2
o(n2
)o(n2)
n^2)
n2)1
不穩定冒泡
o(n
2n^2
n2)o(n)
o(n 2)
n^2)
n2)1
穩定
void
insert_sort
(int
* array,
int len)
}}
//選擇排序
void
select_sort
(int array,
int array_len)
}//最小值放到前面,可能會破壞相等數的前後順序,不穩定
int tmp = array[array_min_index]
; array[array_min_index]
= array[i]
; array[i]
= tmp;
}}
void
bubble_sort
(int array,
int array_len)}}
}
void
bubble_sort
(int
* array,
int len)}if
(is_sort)
break;}
}
lanczos演算法及C 實現(一)框架及簡單實現
其中 u 是列正交矩陣,即 u tu i 每一列為乙個特徵向量,s 是對角陣,對角線上每個元素為特徵值。r 為分解的秩 lanczos演算法分三步求解 1 對 x 進行正交變換得到乙個三對角陣 t x ptp t 其中 p 為正交陣 t left begin alpha 0 beta 1 0 0 0...
三大排序演算法
當前結果是從大到小,若想從小到大排序,將a j a j 1 改為 a j a j 1 即可 a 1,4,2,5,22,3 n len a for i in range 1 n for j in range n i if a j a j 1 a j a j 1 a j 1 a j print a 當前...
三大初級排序演算法
1 氣泡排序 氣泡排序是最慢的排序演算法。在實際運用中它是效率最低的演算法。它通過一趟又一趟地比較陣列中的每乙個元素,使較大的資料下沉,較小的資料上公升。它是o n 2 的演算法。2 插入排序 插入排序通過把序列中的值插入乙個已經排序好的序列中,直到該序列的結束。3 shell排序 shell排序通...