冒泡排序的原理
比方說有五個數字54321,要按從小到大排列,首先比較前兩個,就是5和4,
若是第一個小於第二個,不操做,若是第一個大於第二個,那麼交換二者的位置,即
變成45321,而後比較第二個和第三個,同理變成43521,而後第三個和第四個,
第四個和第五個,這樣一次循環下來,變成43215
因此,一層循環的效果就是挑出最大的一個數字5,冒泡到最後面。可是還要挑出第二大,
第三大的數字,等等。因此一層循環根本就不夠用,必須再套一層才行。像這個例子,
五個數字,起碼要進行四輪循環才行。至於爲何要this.length-i,是由於第一次比較五個數字,
第二個只要比較前四個就好了,第五個確定是最大的了。。
代碼以下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<script type="text/javascript">
var num = [2, 82, 67, -34, 0, 65, 12]
function print(arr) {
for (var i = 0; i <= num.length; i++) {
for (var j = 0; j < num.length - 1; j++) {
if (num[j] > num[j + 1]) {
var temp = num[j] //定義一個變量,將兩個數最大的值賦值給temp
num[j] = num[j+1]
num[j+1] =temp
}
}
}
document.write(num)
}
print()
</script>
</body>
</html>