冒泡排序原理 :比较紧邻的两个数,若位置不对,交换位置。
比如需对以下数组进行冒泡排序(按从小到大顺序进行排序)
var nums = [44,33,22,11]; // [11,22,33,44]
// 【第一趟】 [44,33,22,11] //比较3次
// 第1次比较: [33,44,22,11]
// 第2次比较: [33,22,44,11]
// 第3次比较: [33,22,11,44]
// 【第二趟】 [33,22,11,44] //比较2次
// 第1次比较:[22,33,11,44]
// 第2次比较:[22,11,33,44]
// 【第三趟】 [22,11,33,44] //比较1次
// 第1次比较:[11,22,33,44]
上面是手动 比较的原理:
从上面的手动比较结果可以得出以下结论:
由此可见:一个数组要排序完成,总共进行数组长度-1趟排序,每1趟的排序次数为((数组长度)-趟数)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数,即
for(var t=1;t<nums.length;t++){ //外部循环趟数
for(var i=0;i<nums.length-tang;i++){ //内部循环次数
}
}
所以代码如下:(我为了让效果在后面又随意在数组里添加了两个数字)
打印效果看下面: