• js--冒泡排序[由小到大]


     

    冒泡流程写法  (小的往左冒)

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <title>hello world</title>
    </head>
    <body>
    <script>
        let arr=[8,7,9,1,3];
        let temp;
        for(let i=0; i<arr.length-1; i++){
            console.warn(`
    -------第${i+1}趟:目的是取出数组中第${i+1}个最小的数------`)
            for (let j=i+1; j<arr.length; j++) {
                let result=arr[i]>arr[j];
                console.log(`第${j-i}次比较:拿数组第1个元素${arr[i]}比较数组第${j}个元素${arr[j]},结果${result?'是大于!':'本身就是是小于!'}${result?'把小的数'+arr[j]+'置前':'暂且暂且不动'}`)
                if(result){
                    temp=arr[i];
                    arr[i]=arr[j];
                    arr[j]=temp;
                }
                console.log(arr)
            }
            console.log(`说明:经过第${i+1}趟比较,已经选出了第${i+1}小的数,是${arr[i]}`)
        }
        console.log('最后一个不用循环了,肯定是最大的了')
    </script>
    </body>
    </html>
    View Code

    还有另一种冒泡排序(大的往右冒)

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <title>hello world</title>
    </head>
    <body>
    <script>
        function sortAry(ary){
            for(let i=0;i<ary.length-1;i++){
                console.warn(`--第${i+1}趟:目的是取出数组中第${i+1}个最大的数--`)
                for(let j=0;j<ary.length-1-i;j++){
                    let result=ary[j]>ary[j+1]
                    console.log(`第${j+1}次比较:拿数组第${j}个元素(${ary[j]})与${j+1}个元素(${ary[j+1]})做比较,${result?'是大于,调换两者位置':'保持不动'}`);
    
                    if(result){
                        let temp=ary[j];
                        ary[j]=ary[j+1];
                        ary[j+1]=temp;
                    }
                    console.log(ary)
                }
                console.log(`说明:经过第${i+1}趟比较,已经选出了第${i+1}大的数,是${ary[ary.length-1-i]}`)
            }
            console.log('最后一个不用循环了,肯定是最小的了')
    
        }
        let arr=[8,7,9,1,3];
        sortAry(arr)
    </script>
    </body>
    </html>
    View Code

    var a=[6,2,4,1,5,9],t;
    for(var i=0;i<a.length;i++){
      for(var j=0;j<a.length-1;j++){
         if(a[j]>a[j+1]){
            t=a[j];
            a[j]=a[j+1];
            a[j+1]=t; 
         }
       }
    }
    console.log(a)

    这两种都是冒泡啦 

    当然,如果是数组排序的话,还有js内置的sort方法

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
        <title>hello world</title>
    </head>
    <body>
        <script type="text/javascript">
        function sortNumber1(a, b){return a - b}
        function sortNumber2(a, b){return b - a}
        
        
        var arr = [10,5,40,25,100,1];
        document.write(arr.sort()+'<br/>')//默认
        document.write(arr.sort(sortNumber1)+'<br/>')//从小到大
        document.write(arr.sort(sortNumber2))//从大到小
        </script>
    </body>
    </html>
    View Code

    出自w3c

  • 相关阅读:
    RabbitMQ与AMQP协议详解
    MemCache超详细解读
    ASP.NET Web API通过ActionFilter来实现缓存
    ASP.NET Web API 通过Authentication特性来实现身份认证
    什么是CSR证书申请文件?
    跨平台的 SQL 客户端
    Java生成公私钥对
    git 删除错误提交的commit
    ServiceStack.Text反序列化lowercase_underscore_names格式的JSON
    .NET AES加解密(128位)
  • 原文地址:https://www.cnblogs.com/dshvv/p/5266188.html
Copyright © 2020-2023  润新知