javaScript冒泡排序

算法原理:

冒泡排序算法的运作如下:(升序)

 

1.比较相邻的元素。如果前一个比后一个个大,就交换他们两个。

 

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。第一轮排序后,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个(因为最后一个经过第一轮比较已经是最大的了)。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

.

例子:对 数组[10,49,30,20,50,70,2] 进行排序。

未排序时:49    10    30    20    50    70    2

第一趟比较结果将最大数放后)                                                                                        

第一次:10   49  30   20   50    70    2     4910比较,49>10,故两者交换位置

第二次:10   30  49  20    50    70     2     4930比较,49>30,故两者交换位置

第三次:10  30   20   49    50    70    2    4920比较,49>20,故两者交换位置

第四次:10  30  20    49   50    70    2     4950比较,49<50,故两者不交换位置

第五次:10  30  20   49     50    70    2    5070比较,50<70,故两者不交换位置

第六次:10  30  20    49   50      2   70        70比较,<70,故两者不交换位置

 

第二趟比较结果:

第一次:10  30  20 49  50  2   70     

第二次:10  20  30 49  50  2   70

第三次:10  20  349  50  2   70

第四次:10  20  349  50  2   70   

第五次:10  20  349  2   50  70    

 

第三趟比较结果:

第一次:10   20  30   49   2    50    70     

第二次:10   20  30   49   2    50    70

第三次:10   20  30   49   2    50    70

第四次:10   20  30   2   49    50    70   

 

第四趟比较结果:

第一次:10   20  30   2   49    50    70     

第二次:10   20  30   2   49    50    70 

第三次:10   20  2   30   49    50    70 

 

第五趟比较结果:

第一次:10   20  2   30   49    50    70    

第二次:10   2   20  30   49    50    70

 

第六趟比较结果:

第一次:2   10   20  30   49    50    70  


经过上述过程,可看出,经过6趟的交换,且每次比较的次数逐渐减少。

实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>冒泡排序</title>
</head>
<body>
<script>
    var arr=[10,49,30,20,50,70,2];
    function bubbleSort(arr) {
        for (var i = 0; i < arr.length - 1; i++) {
            for (var j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    var temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }
    console.log(bubbleSort(arr));
</script>
</body>
</html>

猜你喜欢

转载自blog.csdn.net/lgx1134569285/article/details/80381343