1. 程式人生 > >冒泡排序原理

冒泡排序原理

一個 com 技術 控制 效果 個數 添加 外部 順序

冒泡排序原理 :比較緊鄰的兩個數,若位置不對,交換位置。

比如需對以下數組進行冒泡排序(按從小到大順序進行排序)

var nums = [44,33,22,11]; // [11,22,33,44]

// 【第一趟】 [44,33,22,11] //比較3次

// 第1次比較: [33,44,22,11]

// 第2次比較: [33,22,44,11]

// 第3次比較: [33,22,11,44]

// 【第二趟】 [33,22,11,44] //比較2次

// 第1次比較:[22,33,11,44]

// 第2次比較:[22,11,33,44]

// 【第三趟】 [22,11,33,44] //比較1次

// 第1次比較:[11,22,33,44]

上面是手動 比較的原理:

從上面的手動比較結果可以得出以下結論:

由此可見:一個數組要排序完成,總共進行數組長度-1趟排序,每1趟的排序次數為((數組長度)-趟數)次,所以可以用雙重循環語句,外層控制循環多少趟,內層控制每一趟的循環次數,即

for(var t=1;t<nums.length;t++){ //外部循環趟數

  for(var i=0;i<nums.length-tang;i++){ //內部循環次數

}

}

所以代碼如下:(我為了讓效果在後面又隨意在數組裏添加了兩個數字)

技術分享圖片

打印效果看下面:

技術分享圖片

冒泡排序原理