冒泡排序(个人观点)

冒泡排序,如从小到大排序,意指两个位置所拥有的数的交换,如图,1中的盒子与2中的盒子比较,盒子互换位置,这时较高的盒子位于2的位置。此时,2位置的盒子在与3位置的盒子相比较。如此说来,从最出开始与后一个盒子比较到与最后一个盒子比较可设次数为m,用当用for循环时,此处的1 2 3 4...可用j来代替。当一处的盒子与其他盒子比较完之后,则可开启下一轮比较,我们可设比较的总轮数为n,从开始比较是的第几轮用i来代替。
vararr= [3,5,1,4,2];
var m = 0 ;
varn= 0;
for ( var i = 0 ; i < arr . length - 1 ; i ++) {
// 定义一个bool类型值来判断这一轮是否做出了修改
var bool = true;
//因为每完成一轮,则较大的数就会被移至后面,所以可以少比较i次
for ( var j = 0 ; j < arr . length - i - 1 ; j ++) {
if ( arr [ j ] > arr [ j + 1 ]) {
var temp = arr [ j ];
arr [ j ] = arr [ j + 1 ];
arr [ j + 1 ] = temp ;
//当这一轮中有一个位置的内容需要交换时,bool值即为false;
bool = false ;
}
m ++;
}
if ( bool ) {
break ; //当bool值为真时,这一轮未作出修改,则跳出这一轮。
}
n ++;
}
console . log ( arr );
console . log ( " 比较了: " + n + " " + m + " " );

( :上述内容为本人的笔记和总结,望大牛勿喷!如有错误还望留言指点!)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值