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

2021-10-03 13:50:13 字數 1268 閱讀 5649

氣泡排序

氣泡排序的基本概念:氣泡排序類似於水中冒泡,較大的數沉下去,較小的慢慢冒起來,假設從小到大,較大的數慢慢往後排較小的數慢慢往前排

(氣泡排序其實就是每一次迴圈遍歷,將乙個最大的數一到序列末尾)

演算法描述:

1.比較相鄰的元素,如果前乙個比後乙個大,則進行位置交換。

2.第一輪排序第1個和第2個一對,比較與交換,隨後第2個和第3個一對比較交換,這樣直到倒數第2個和最後1個,將最大的數移動到最後一位。

3.第二輪排序得到第二大的值,放在倒數第二個位置

4.需要n-1趟

氣泡排序**實現

例如:隨機選取10個 1-100的數 放到陣列中 並將其從小到大排序

//隨機10個數

var list = ;

for (var i = 0; i < 10; i++)

console.log(「原陣列:」, list);

// 氣泡排序

for (var j = 0; j < list.length - 1; j++)

}console.log(j, list);

}選擇排序

選擇排序的基本概念:是一種簡單直觀的排序演算法。它的工作原理是每一次從待排序的資料元素中選出最小(或最大)的乙個元素,存放在序列的起始位置,直到全部待排序的資料元素排完。 選擇排序是不穩定的排序方法。

算數描述:

1.第一次從下標為0的開始下標為0的這個數與後面的n-1個進行比較,找出最小或者最大的放在下標為0的這個位置;

2.第二次從下標為1的開始比較,查詢剩下的最大或者最小值,放在下標為1的位置;以此類推;直到排序完成

選擇排序**實現

var list=[45, 47, 51, 54, 65, 42, 29, 0, 75, 22];

console.log(list);

for(var j=0;j區別

1.氣泡排序是比較相鄰位置的兩個數,而選擇排序是按順序比較,找最大值或者最小值;

2.氣泡排序每一輪比較後,位置不對都需要換位置,選擇排序每一輪比較都只需要換一次位置;

3.氣泡排序是通過數去找位置,選擇排序是給定位置去找數;

4.選擇排序交換次數較少,一定程度上提高了運算效率,但是選擇排序是不穩定的排序方法

氣泡排序和選擇排序區別

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