zoukankan      html  css  js  c++  java
  • js数组冒泡排序,快速排序的原理以及实现

    冒泡排序:

        var arr = [49, 38, 65, 97, 76, 13, 27, 49];
        console.log('arr:' + arr);    //打印排序前的数组
        Bubblesort(arr);
        console.log('sortArr:' + arr);    //打印排序后的数组
     
        function Bubblesort(arr){
            for(i=0;i<arr.length-1;i++){    //排序趟数 注意是小于
                for(j=0;j<arr.length-i-1;j++){
                //一趟确认一个数,数组长度减当前趟数就是剩下未确认的数需要比较的次数
                //因为j从0开始,所以还要再减1,或者理解为arr.length-(i+1)
                    if(arr[j]>arr[j+1]){
                        var temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                    }
                }
                console.log('newArr:' + arr); 
            }
        }

    加入flag,没有进行过交换,则不再进行多余地排序。 

        var arr = [49, 38, 65, 97, 76, 13, 27, 49];
        console.log('arr:' + arr);
        Bubblesort(arr);
        console.log('sortArr:' + arr);
     
        function Bubblesort(arr){
            var flag=1;    //flag用来标记某一趟排序是否发生交换
            for(i=0;i<arr.length-1;i++){
                flag=0;    //flag置为0,如果本趟排序没有发生交换,这不会执行下一趟排序
                for(j=0;j<arr.length-i-1;j++){
                    if(arr[j]>arr[j+1]){
                        var temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                        flag=1;    //flag置为1,表示本趟排序发生了交换
                    }
                }
                console.log('newArr:' + arr); 
                if(flag==0)  break;
            }
        }

  • 相关阅读:
    java虚拟机小贴士之GC分析
    hystrix文档翻译之工作原理
    hystrix文档翻译之开始使用
    SQLALchemy--ORM框架
    PythonWEB框架之Flask--3
    补充
    PythonWEB框架之Flask--2
    PythonWEB框架之Flask
    centos6.8下redis的安装和配置
    celery
  • 原文地址:https://www.cnblogs.com/xiaoqi2018/p/10446409.html
Copyright © 2011-2022 走看看