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

    冒泡的原理

    先来看一张图片
    冒泡排序

    所谓冒泡排序就是:

    假设有一列数组,判断其中每个相邻元素的大小,一但发现第一个数比第二的数要大[默认从小到大排序],就交换两个元素的位置,一直把,数组中最大的元素放置在数组的最后面

        // 假设的数组
        var list = [5,2,1,7,5,3,9,2,7];
        
        // 当元素一直比较到最后,发现自己已经是最后一个数了,后面已经没有元素和自己进行比较了,所以我 只需要比较 length-1 个即可
        for(var i = 0; i<list.length-1; i++){
            // 判断第一个元素是否比第二的元素大,如果大,则交换两个元素的位置
            if(list[i] > list[i+1]){
                // 声明一个临时变量,储存数组的第一个值
                var tmp = list[i];
                list[i] = list[i+1];
                list[i+1] = tmp;
    
            }
        }
    
    // 这段代码运行后,数组是这个样子的
    
    // [2,1,5,5,3,7,2,7,9]
    
    
    • 通过上面我们发现经过一轮循环后,数组中最大的元素,已经排序到最后面了
    • 现在我们只需要,让上面的代码执行 多次既可以
    • 所以我们这样做~~
    
    for(var j = 0; j<list.lenth-1; j++){
        // 每次比较完成后,数组的最后一个就不需要比较了
        for(var i = 0; i<list.length-j-1; i++){
            // 判断第一个元素是否比第二的元素大,如果大,则交换两个元素的位置
            if(list[i] > list[i+1]){
                // 声明一个临时变量,储存数组的第一个值
                var tmp = list[i];
                list[i] = list[i+1];
                list[i+1] = tmp;
    
            }
        }
    }
    
    
    // 这段代码运行后,数组是这个样子了
    
    // [1,2,2,3,5,5,7,7,9]
    
  • 相关阅读:
    O(n^2)的排序方法
    99乘法表
    excel 转 csv
    批量关闭 excel
    tomcat 加入服务
    文件打包 zip
    字符串转换
    List数组种删除数据
    mybatis 批量上传
    sql server 查询表字段及类型
  • 原文地址:https://www.cnblogs.com/ifon/p/11692853.html
Copyright © 2011-2022 走看看