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

使用js实现冒泡排序,并优化。

2018-11-30 20:53 369 查看

原始版,无忧化

function bubbleSort(ary) {
var l = ary.length

for(var i = 0; i < l; i++) {
for(var j = 0; j < l; j++) {
if(ary[j] > ary[j + 1]) {
var tmp = ary[j]
ary[j] = ary[j + 1]
ary[j+1] = tmp
}
}
}
return ary
}

优化一:内层循环次数递减

function bubbleSort(ary) {
var l = ary.length

for(var i = 0; i < l; i++) {
for(var j = 0; j < l - i - 1; j++) {
if(ary[j] > ary[j + 1]) {
var tmp = ary[j]
ary[j] = ary[j + 1]
ary[j+1] = tmp
}
}
}
return ary
}

优化二:监控内层是否发生过交换,如过某次内层没有发生过交换直接返回。

function bubbleSort(ary) {
var l = ary.length
for(var i = l - 1; i >= 1; i--) {
var swaped = false  //监控内层交换
for(var j = 0; j < i; j++) {
if(ary[j] > ary[j + 1]) {
var tmp = ary[j]
ary[j] = ary[j + 1]
ary[j + 1] = tmp
swaped = true
}
}
}
if(!swaped) {
return ary
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: