氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。
演算法描述
1、比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個;
2、對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數;
3、針對所有的元素重複以上的步驟,除了最後乙個;
4、重複步驟1~3,直到排序完成;
**演示
**實現
function randomarray(start,end),random,step=end-start;console的結果:while(a.length 0;i--)
}} return array;
}

氣泡排序優化一
[2,1,3,4]在第一次迴圈後就變成[1,2,3,4],已經實現排序,但for迴圈仍會繼續。所以在交換迴圈中新增標記,如果某一次交換迴圈結束中都沒有發生交換事件,說明排序已經是ok的,此時應該跳出for迴圈。
**實現
function bubblesort1(array)氣泡排序優化二for (let i = array.length - 1;i > 0;i--)
}if (sortdone)
} return array;
}
假設陣列尾部幾個資料已經是有序排序的,比如[34,5,12,6,78,79,80,81,82],那後面幾個資料在交換迴圈中其實就可以不用去進行比較,直接查詢到交換的最後乙個索引,並將該索引作為下次迴圈的終止點。
**實現
function bubblesort1(array)最後我們來檢驗下這三種方法的迴圈次數。for (let i = array.length - 1;i > 0;i--)
}i = sortedindex;
} return array;
}
氣泡排序以及優化
排序 1.穩定的排序演算法 2.不穩定的排序演算法 3.比較排序 元素之間的次序依賴它們之間的比較,每個數需要與其他數進行比較才能確定自己的位置。比較典型的比較排序有快速排序,歸併排序,堆排序,氣泡排序。4非比較排序 非比較排序只要確定每個元素之前的已有元素個數即可,經過一次遍歷便可以解決。排序 1...
氣泡排序以及優化
氣泡排序是新手小白學的第乙個排序方法,複雜度很高。那麼如何在氣泡排序的基礎上對其進行優化?我們給一組資料 9,5,6,7,5,3 第一次冒泡 9和5交換位置 5,9,6,7,5,3 9和6交換位置 5,6,9,7,5,3 9和7交換位置 5,6,7,9,5,3 9和5交換位置 5,6,7,5,9,3...
氣泡排序以及優化
最近需要用到氣泡排序,所以翻出來研究一下。氣泡排序的基礎其實就是元素交換,是一種極其簡單的排序演算法。話不多說,直接上 1 include 2 void bubble sort int arr,int len 315 16 17 1819int main 20 22int len int sizeo...