zoukankan      html  css  js  c++  java
  • 算法---冒泡排序法

    冒泡排序:

    通过对相邻元素的对比,并交换位置,一步一步的把一个元素给挑选出来。

    我们可以使用两层嵌套的for循环来实现这个过程,也就是实现冒泡排序:

    复制代码
    //外层控制轮数
    for(var i=0;i<len;i++){
      //内层对数组元素进行冒泡选择
      for(var j=0;j<len-1-i;j++){
        //交互元素
        if(arr[j] > arr[j+1]){
        var temp = arr[j];
        arr[j] = arr[j+1];
        arr[j+1] = temp;    
        }
      }
    }
    复制代码

       

      下面是冒泡排序的完整代码。

    复制代码
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
        <title>冒泡排序</title>
        <meta name="keywords" content="关键字列表" />
        <meta name="description" content="网页描述" />
        <link rel="stylesheet" type="text/css" href="" />
        <style type="text/css"></style>
        <script type="text/javascript">
        //参数数字数组
        function bubble(arr){
            //检查参数
            if(toString.call(arr) !== '[object Array]'){
                return false;
            }
            //获取数组长度
            var len = arr.length;
            if(len <= 1){//小于1不用排序
                return arr;
            }
            //外层控制轮数
            for(var i=0;i<len;i++){
                //标记是否有排序的元素
                var mark = true;
                //内层对数组元素进行冒泡选择
                for(var j=0;j<len-1-i;j++){
                    //交互元素
                    if(arr[j] > arr[j+1]){
                        mark = false;
                        var temp = arr[j];
                            arr[j] = arr[j+1];
                            arr[j+1] = temp;    
                    }
                }
                if(mark){
                //当没有进行冒泡选择时,证明已经排序好了
                    return arr;    
                }
            }
        }
        //测试
        var ar = [9,3,7,4,8,2,5,1,6,0];
        alert(bubble(ar));
        </script>
    </head>
    <body>
    
    </body>
    </html>
    复制代码

     

  • 相关阅读:
    14-快速排序
    linux上挂在windows的共享文件系统,大小写不敏感
    【mount】linux挂共享盘
    监控windows服务或者进程
    自定义时间间隔
    示例
    filebeat
    kafka
    文档碎片
    简单DOM操作
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/6201018.html
Copyright © 2011-2022 走看看