2023年11月27日
比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
針對所有的元素重複以上的步驟,除了最後乙個。
持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。
當輸入的資料已經是正序時(都已經是正序了,我還要你氣泡排序有何用啊)。
當輸入的資料是反序時(寫乙個 for 迴圈反序輸出資料不就行了,幹嘛要用你氣泡排序呢,我是閒的嗎)。
static
void
bubblesort
(int
arrays)
}/*優化*/
if(flag ==
true)}
}
o(n²) 的時間複雜度
首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。
重複第二步,直到所有元素均排序完畢。
}// 將找到的最小值和i位置所在的值進行交換
if(min != i)
}}
比如:
arrays[0]要和後面所有元素比較,[1]—[9]比較9次,找到最小值下標i,交換arrays[0]、arrays[i];
arrays[1]要和後面[2]~[9]比較8次,找到最小值下標i,交換arrays[1]、arrays[i]
......
arrays[8]和arrays[9]比較一次
那麼就需要2個迴圈,i
控制迴圈0-8,j
控制元素i
與其後元素比較(因為下標從0開始的),0-8遍歷,實際是9次,即(n-1)
j
控制元素比較,第1輪比較9次,第2輪比較8次,則第i輪比較(n-i)
次 十大排序演算法
1.非線性時間類排序 時間複雜度未突破 0 nlog 2n 不穩定的四個排序演算法 選擇排序 0 n2 希爾排序 0 n1.3 希爾排序實現python 快速排序 0 n log2 n 0 nlog 2n 0 nlog 2 n 快速排序實現c python 堆排序 0 n log2 n 0 nlog...
十大排序演算法
排序規則 從左至右依次增大 一 基於比較的排序演算法 插入排序 逐個遍歷未排序序列,將其在已排序序列中從右到左比較,直到遇到比自己小的數,然後將元素插入到那個數的後面,有序序列從左向右生長。選擇排序 在未排序序列中選擇最小的元素,將其插入到已排序序列的末尾,有序序列從左向右生長。氣泡排序 從左至右逐...
十大排序演算法
github 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序...