学了怎么久的JS终于我把冒泡法搞明白了,以前一直用不到,苦笑,苦笑
冒泡法:通过每一次的比较来提取出一个最大或最小的值;
例如:
12,343,232,12,43,2,32(刚开始)
12,232,12,43,2,32,343(第一次)
...
...
知道原理我们要明白每一次出来一个数,那么一共要出Array.length(数值长度)-1,因为最后一次就两个都出来了,把提取次数设置为i;
然后没一次都要发生什么事,他们是怎么比较的能?
每一次两两比较数值大的取代数值小的的数组中的位置,与下一个位置的进行比较,所以没一次比较Array.length(数值长度)-1-i(已经出来的最大或最小的数),把比较次数设置为J;
故函数为
var Array = [12,343,232,12,43,2,32]
function maopao(){
for(var i =0 ; i<Array.length-1 ; i++){ //提取次数
for(var j=0 ; j<Array.length-1-i ;j++){ //每次提取时的比较次数
if(Array[j]>Array[j+1]){ //当前面的数大于后面的数下面的方法进行调换
Anumber = Array[j+1];
Array[j+1] = Array[j];
Array[j] = Anumber;
}
}
}
console.log(Array);
//0: 2,1: 12,2: 12,3: 32,4: 43,5: 232,6: 343
}
maopao();
总结:为什么要这样做,我要一串数值中的顺序排列,那就一个一个把最大的找出来,怎么找俩俩比较,大的键小单数值打的取代键大但数值小的,在进行下一次的比较这样就可以找到一串数值中的最大的值;