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
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!