您的位置:首页 > Web前端 > JavaScript

js冒泡排序优化排序次数

2017-04-23 19:56 232 查看
//循环控制趟数
var s = 0;
var s1 = 0;

//为什么 isSort = true,不能写在循环外面
//因为 交换位置 isSort = false.  isSort的值永远是false 。我们要检测的是某一趟是否交换位置

for (var i = 0; i < array.length - 1; i++) {
var isSort = true; //假设排序ok
//控制两两比较的次数       1--6      2--5   4 3 2 1
for (var j = 0; j < array.length - 1 - i; j++) {
//两两比较   从小到大排序

//如果交换位置,说明没有排序好,如果不交换位置,说明排序好
if (array[j] > array[j + 1]) {
isSort = false;  //没有排序好呢
//交换位置
var tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
}

s++; //记录内循环的次数
}
s1++;  //记录外循环的次数

if(isSort) {
//如果排序好了
break;
}
}

console.log("内循环的次数" + s);
console.log("外循环的次数" + s1);
console.log(array);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐