js--排序算法--冒泡算法

冒泡排序:依次相邻两个元素比较,符合条件的交换,每次都可以得出一个最大的或者最小的到最后


var MaoPao = function(arr){
var len = arr.length;
for(var i=0; i<len-1;i++){//每执行完一次就会把当次最大的或者最小的排到最后
for(var j=0; j<len-i-1; j++){
if(arr[j+1]>arr[j]){
flag = false;
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}


优化算法:添加一个flag判断是否排序完,已经排完则退出排序

var MaoPao = function(arr){
var len = arr.length;
for(var i=0; i<len-1;i++){//每执行完一次就会把当次最大的或者最小的排到最后
var flag = true;
for(var j=0; j<len-i-1; j++){
if(arr[j+1]>arr[j]){
flag = false;
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
if(flag){//优化,如果检测已经排好,退出
break;
}
}
}

猜你喜欢

转载自blog.csdn.net/xiaye_go/article/details/78117664