冒泡排序-JS代码实现

冒泡排序算法思想:将数组中的数组按照从大到小的顺序依次“沉到”后边。第一次,最大值沉底;第二次,次大值沉底……


<!DOCTYPE html>
<html>
<head>
    <title>冒泡排序-JS代码实现</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body onload="init()">
    <script>
    function init(){
        function bubbleSort(array){
            var i, j, n, temp, flag;
            n = array.length;
            for(i=n-1; i>0; i--){
                flag = 0;
                for(j=1; j<=i; j++){
                    if(array[j] < array[j-1]){
                        temp = array[j];
                        array[j] = array[j-1];
                        array[j-1] = temp;
                        flag=1;
                    }
                    document.write(array + "<br/>")
                }
                if(flag==0){
                    break;
                }
                document.write("<br/>");
            }
        }

        var arrayA = [1 , 5, 2, 6, 4, 3];
        bubbleSort(arrayA);
    }
    </script>
</body>
</html>
请对比下面的算法思考一下差别:

function bubbleSort(array){
      var i, j , temp, pos, n=array.length;
      for(i=n-1;i>0;i--){
        temp=array[0];
        pos=0;
        for(j=1;j<=i;j++){
          if(array[j]>temp){
            temp=array[j];
            pos=j;
          }
        }
        array[pos]= array[i];
        array[i]=temp;
        document.write(array + "<br/>");
      } 
    }
仔细研读,可知,第一种算法是每比较一次,较大值都会被放到较小值后边,这样在大值沉底的同时也对数组进行了局部排序,较之第二种算法,是每进行一次循环,只对此趟排序中的最大值和最大值应在位置的值进行替换。总之,第一种算法排序效率较高。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值