交換排序---冒泡排序算法(Javascript版)

比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。
針對所有的元素重複以上的步驟,除了最後一個。

持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較。

function sort(elements){
  for(var i=0;i<elements.length-1;i++){
    for(var j=0;j<elements.length-i-1;j++){
      if(elements[j]>elements[j+1]){
        var swap=elements[j];
        elements[j]=elements[j+1];
        elements[j+1]=swap;
      }
    }
  }
}


var elements = [3, 1, 5, 7, 2, 4, 9, 6, 10, 8];
console.log('before: ' + elements);
sort(elements);
console.log(' after: ' + elements);


效率:

時間複雜度:最好:O(n),最壞:O(n^2),平均:O(n^2)。

空間複雜度:O(1)。

穩定性:穩定。



發佈了59 篇原創文章 · 獲贊 9 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章