氣泡排序和選擇排序的區別

2021-10-04 10:36:10 字數 925 閱讀 6977

2,核心內容

氣泡排序

原理: 相鄰的兩個單位,比較儲存的資料

如果第乙個單元的資料較大,就將兩個相鄰單元,交換儲存資料

過程:

從起始單元開始比較,第一次迴圈,會選擇出乙個最大值,放在陣列所有單元的最後

之後,每次迴圈,都會比較出乙個本次迴圈的最大值,放在當前參與比較單元的最後

之前已經比較選出的單元,不會參與下一次比較

優化:

1, 單次迴圈,最後乙個單元,通過倒數第二個單元,參與比較

最後乙個單元,就不參與單次迴圈

2, 之前比較出的最大值,不再參與下一次的比較

3, n個單元,只要迴圈比較n-1次,最後就乙個單元時,不要再迴圈比較

核心: 交換儲存的資料

兩個相鄰的單元,比較資料大小,第乙個單元數值較大,就交換兩個單元儲存的資料選擇排序

先定義迴圈的起始位置預設為最小值所在位置

從起始位置下乙個位置開始,執行迴圈

如果有位置上的數值,小於,儲存索引位置上的數值

就儲存這個位置的索引值

迴圈結束,比較儲存的索引,是否是起始位置索引

如果不是,就交換兩個位置上的數值

會將本次迴圈的最小值,放置在迴圈的起始位置上

再執行多次迴圈,完成排序

核心 : 找到最小值的索引,與起始位置交換數值

先找索引 在交換數值

優化 : 1,之前比較的數值不參與一次標記

2,n個單元,只要比較n-1次選擇排序:

如果發生大小順序問題,只是做賦值索引的操作

等迴圈完成,執行判斷,做一次資料交換

氣泡排序:

每次發生大小順序問題,都要執行資料交換操作

執行資料交換的次數,高於選擇排序

執行資料交換的操作比較繁瑣,執行次數過多,執行效率低

氣泡排序和選擇排序區別

氣泡排序法 相鄰元素兩兩比較,大的往後放,第一次完畢,最大值出現在了最大索引處 分析 第一次比較排序的結果 會把其中最大的資料排到最大的索引處 第二次比較排序後的結果 因為第一次已經把最大的乙個資料放到了最大的索引的地方,所以這次要進行比較的資料比陣列裡面的元素的資料個數 1個,而第二大的資料也會排...

氣泡排序和選擇排序區別

原理上 冒泡是兩兩相鄰的比較,遇到最大的就交換,把最大的沉到後面。選擇排序是假設第乙個為最小,然後不斷和後面的進行比較,遇到更小的就交換位置,把最小的換到前面。author zzk coding utf 8 氣泡排序 data set 9,1,22,31,45,3,6,2,11 for i in r...

氣泡排序和選擇排序的區別?

在一次寫選擇排序演算法的時候,發現和冒泡沒啥區別,後來發現寫錯了,寫的就是冒泡而非選擇。先看一下期初的 templatevectorselectionsort vector arr return arr 再看一下冒泡 2.氣泡排序 templatevectorbubblesort vector ar...