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...