JavaScript冒泡排序
时间:2019-12-26 22:12:58
收藏:0
阅读:97
冒泡排序的原理
比方说有五个数字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>
原文:https://www.cnblogs.com/pp-yang/p/12104550.html
评论(0)