算法一:冒泡排序

冒泡的原理

先来看一张图片
冒泡排序

所谓冒泡排序就是:

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

    // 假设的数组
    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]
原文地址:https://www.cnblogs.com/ifon/p/11692853.html