1. 首页

冒泡排序的算法详解与优化

我们先上图,然后再参照图片来看算法推演与优化过程

根据上图,我们先写俩个for循环,然后把每次出来看结果都打印一下,再对比看一下

var a =[561,23,156,41,321,54,3,23,123,41456]
console.log("初始数据",a);
let temp=0  //临时变量用来存数据的
for(let i=0;i<a.length;i++){
	for(let j=0;j<a.length-i-1;j++){//减1是因为最后一位不需要再与下一位对比了
    	if(a[j]>a[j+1]){
          temp=a[j]
          a[j]=a[j+1]
          a[j+1]=temp
          console.log("每轮调换后",a);
        }
    }
	console.log("第",i,"轮调换后的结果是",a);
}
------------打印结果是----------
> "初始数据" Array [561, 23, 156, 41, 321, 54, 3, 23, 123, 41456]
> "每轮调换后" Array [23, 561, 156, 41, 321, 54, 3, 23, 123, 41456]
> "每轮调换后" Array [23, 156, 561, 41, 321, 54, 3, 23, 123, 41456]
> "每轮调换后" Array [23, 156, 41, 561, 321, 54, 3, 23, 123, 41456]
> "每轮调换后" Array [23, 156, 41, 321, 561, 54, 3, 23, 123, 41456]
> "每轮调换后" Array [23, 156, 41, 321, 54, 561, 3, 23, 123, 41456]
> "每轮调换后" Array [23, 156, 41, 321, 54, 3, 561, 23, 123, 41456]
> "每轮调换后" Array [23, 156, 41, 321, 54, 3, 23, 561, 123, 41456]
> "每轮调换后" Array [23, 156, 41, 321, 54, 3, 23, 123, 561, 41456]
> "第" 0 "轮调换后的结果是" Array [23, 156, 41, 321, 54, 3, 23, 123, 561, 41456]
> "每轮调换后" Array [23, 41, 156, 321, 54, 3, 23, 123, 561, 41456]
> "每轮调换后" Array [23, 41, 156, 54, 321, 3, 23, 123, 561, 41456]
> "每轮调换后" Array [23, 41, 156, 54, 3, 321, 23, 123, 561, 41456]
> "每轮调换后" Array [23, 41, 156, 54, 3, 23, 321, 123, 561, 41456]
> "每轮调换后" Array [23, 41, 156, 54, 3, 23, 123, 321, 561, 41456]
> "第" 1 "轮调换后的结果是" Array [23, 41, 156, 54, 3, 23, 123, 321, 561, 41456]
> "每轮调换后" Array [23, 41, 54, 156, 3, 23, 123, 321, 561, 41456]
> "每轮调换后" Array [23, 41, 54, 3, 156, 23, 123, 321, 561, 41456]
> "每轮调换后" Array [23, 41, 54, 3, 23, 156, 123, 321, 561, 41456]
> "每轮调换后" Array [23, 41, 54, 3, 23, 123, 156, 321, 561, 41456]
> "第" 2 "轮调换后的结果是" Array [23, 41, 54, 3, 23, 123, 156, 321, 561, 41456]
> "每轮调换后" Array [23, 41, 3, 54, 23, 123, 156, 321, 561, 41456]
> "每轮调换后" Array [23, 41, 3, 23, 54, 123, 156, 321, 561, 41456]
> "第" 3 "轮调换后的结果是" Array [23, 41, 3, 23, 54, 123, 156, 321, 561, 41456]
> "每轮调换后" Array [23, 3, 41, 23, 54, 123, 156, 321, 561, 41456]
> "每轮调换后" Array [23, 3, 23, 41, 54, 123, 156, 321, 561, 41456]
> "第" 4 "轮调换后的结果是" Array [23, 3, 23, 41, 54, 123, 156, 321, 561, 41456]
> "每轮调换后" Array [3, 23, 23, 41, 54, 123, 156, 321, 561, 41456]
> "第" 5 "轮调换后的结果是" Array [3, 

   
         

本文来自投稿,不代表本人立场,如若转载,请注明出处;如有问题您可以发邮件到:itlun@qq.com