冒泡排序算法
例子:10,8,9,6,4,20,5
第一轮 1)10>8 交换数据 得到:8,10,9,6,4,20,5
2)10>9 交换数据 得到:8,9,10,6,4,20,5
3)10>6 交换数据 得到:8,9,6,10,4,20,5
4)10>4 交换数据 得到:8,9,6,4,10,20,5
5)10<20 不交换数据 得到:8,9,6,4,10,20,5
6)20>5 交换数据 得到:8,9,10,6,4,5,20
结果:8,9,10,6,4,5,20
第二轮 1)8<9 不交换数据 得到:8,9,10,6,4,5,20
2)9<10 不交换数据 得到:8,9,10,6,4,5,20
3)10>6 交换数据 得到:8,9,6,10,4,5,20
4)10>4 交换数据 得到:8,9,6,4,10,5,20
5)10>5 交换数据 得到:8,9,6,4,5,10,20
结果:8,9,6,4,5,10,20
第三轮 1)8<9 不交换数据 得到:8,9,6,4,5,10,20
2)9>6 交换数据 得到:8,6,9,4,5,10,20
3)9>4 交换数据 得到:8,6,4,9,5,10,20
4)9>5 交换数据 得到:8,6,4,5,9,10,20
结果:8,6,4,5,9,10,20
第四轮 1)8>6 交换数据 得到:6,8,4,5,9,10,20
2)8>4 交换数据 得到:6,4,8,5,9,10,20
3)8>5 交换数据 得到:6,4,5,8,9,10,20
结果:6,4,5,8,9,10,20
第五轮 1)6>4 交换数据 得到:4,6,5,8,9,10,20
2)6>5 交换数据 得到:4,5,6,8,9,10,20
结果:4,5,6,8,9,10,20
第六轮 1)4<5 不交换数据 得到:4,5,6,8,9,10,20
分析一下得出JS冒泡排序算法如下
function aa(data){ var i=0; while(i<data.length-1){ for(var j=0;j<data.length-i-1;j++){ if(data[j]>data[j+1]){ var x=data[j]; data[j]=data[j+1]; data[j+1]=x; } } i++; }} var data=[10,8,9,6,4,20,5]; console.log('before:'+data); aa(data); console.log('after:'+data);
转载于:https://www.cnblogs.com/xiaoyingbianbianbian/p/7177326.html