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

来源:互联网 发布:餐厅门店经营数据 编辑:程序博客网 时间:2024/04/30 11:14

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


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;
}
}
}