冒泡排序的优化版
function sort(arr) {
// 记录最后一次交换的位置
let lastExchangeIndex = 0;
// 无序序列的边界,每次比较只需要比较到这里为止
let sortBorder = len - 1;
for(let i = 0; i < len - 1; i++) {
var flag = true; //有序标记,每一轮的初始值为true
for(let j = 0; j < sortBorder; j++) {
if(arr[j] > arr[j + 1]) { //有元素交换,不是有序,变为false
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = false;
lastExchangeIndex = j;
}
}
//一趟下来看看元素有没有发生交换,没有就跳出大循环
if(flag) {
break;
}
sortBorder = lastExchangeIndex;
}
return arr;
}