2021春招 十大排序 待完善

2021-10-10 22:11:27 字數 1288 閱讀 3995

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 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序...