簡單排序演算法 冒泡 插入 選擇

2021-09-11 16:37:55 字數 1729 閱讀 8832

**

1.氣泡排序

資料兩兩比較,每次冒出乙個最大(小)值,需要n+n-1+…+1次比較,時間複雜度o(n^2)

基本**

void

sort

(int

arr)}}

void

swap

(int

arr,

int i,

int j)

如果給定陣列本身已經是排好的順序,那麼優化一下以上排序

如果第一次遍歷時沒有任何數交換,那麼證明已是順序,直接退出迴圈即可

void

sort

(int

arr)}if

(noswap)

return;}

}

氣泡排序引申的雞尾酒排序我們從冒泡中得出每次冒出乙個最大或最小值,經過n-1次起冒即可得出一條順序的陣列。

但如同雞尾酒攪拌一樣,每次左右攪拌,冒出乙個最大值和乙個最小值,那麼只需n/2次即可冒完,相較於氣泡排序省了很多步。

}2.插入排序插入排序:從第二個元素開始,將當前元素插入到前面對應位置,使當前元素和之前元素形成有序陣列

//插入資料

}}3.選擇排序選擇排序,從當前數列中找出最小(大)值,把它和首位交換位置,在從剩餘數列中找出最小(大)值,放於當前剩餘數列首部,然後迴圈,得出排列好的數列。

)//找出最小值的下標並賦給index}if

(arr[i]

!=arr[index])}

}static

void

swap

(int

arr,

int i,

int j)

簡單排序(選擇 冒泡 插入)

逆序對設a aa為乙個有n nn個數字的有序集 n 1n 1 n 1 其中所有數字各不相同。如果存在正整數i ii j jj使得1 i n1 leq i j leq n 1 in而且a i a j a i a j a i a j 則 a i a j a i a j a i a j 這個有序對稱為a的...

演算法 插入選擇氣泡排序

演算法 排序 n 2 時間複雜度是o n 2 的排序有插入,選擇,冒泡。由於演算法思想比較簡單易懂,也不複雜。我們就簡單講講。插入排序 乙個元素是有序的,從第二個元素開始,依次將每個元素插入到前面序列的對應位置,最終整個序列有序。外層n 1趟。void insertsort int a,int n ...

常見簡單排序演算法(選擇,冒泡,插入)

原理 每一次從待排序的資料元素中選出最大 小 的,將其放在前面已排好序的資料後面,然後又從剩下的資料中選出最大 小 的,重複操作,以此類推。c include void main int i,j,k,temp for i 0 i 10 i temp a i 找到了就開始交換位置 a i a k a ...