javaScript 冒泡排序算法

數組的排序方法非常多,其中有封裝好的sort()方法,也有js原生語句實現的冒泡排序、快速排序和選擇排序等算法。以下介紹冒泡排序的算法。

var arr=[6,5,4,3,2,1];實現從小到大排序

冒泡排序:數組內前後兩兩比較,如果前者大於後者,則交換兩者位置,直到所有的元素都按照從小到大排列,結束排序。

原理:兩兩比較,始終將較大的數放在後面

代碼

<code>var arr=[6,5,4,3,2,1];
//執行arr.length-1次循環,因為每次循環都會固定一位最大的數放在最後位置,當第五次循環時,結果會將最大的數放在arr[1],排序結束
for(var i=0;i<arr.length-1> //決定每輪元素比較多少次,當每次輪結束時,會將最大的數放在最後,下一輪比較時,最後固定的較大的數可以不再比較,所以j<arr.length-1-i.> for(var j=0;j<arr.length-1-i> //每次比較時,如果前者大於後者,則調換二者位置
if(arr[j]>arr[j+1]){
//兩個元素互換值,應該定義第三變量,下方賦值原理為:arr[j+1]--->temp;arr[j]--->arr[j+1];temp--->arr[j]
var temp=arr[j+1];
arr[j+1]=arr[j];
arr[j]=temp;
}
}
}/<arr.length-1-i>/<arr.length-1-i.>/<arr.length-1>/<code>

比較過程

第一輪

第1次比較:

5 6 4 3 2 1

第2次比較:5 4 6 3 2 1

第3次比較:5 4 3 6 2 1

第4次比較:5 4 3 2 6 1

第5次比較:5 4 3 2 1 6

第二輪 (第一輪結束最後一位最大的數6不再比較)

第1次比較:4 5 3 2 1

第2次比較:4 3 5 2 1

第3次比較:4 3 2 5 1

第3次比較:4 3 2 1 5

第三輪 (第二輪結束最後一位最大的數5不再比較)

第1次比較:

3 4 2 1

第2次比較:3 2 4 1

第3次比較:3 2 1 4

第四輪 (第三輪結束最後一位最大的數4不再比較)

第1次比較:2 3 1

第2次比較:2 1 3

第五輪 (第四輪結束最後一位最大的數3不再比較)

第1次比較: 1 2


分享到:


相關文章: