Js选择排序的问题。我这段代码,为何实现不了。

2025-12-05 16:37:37
推荐回答(2个)
回答1:

大哥,你这段代码问题大了。给你3个排序的方式,自己研究。
冒泡排序:(耗时长)
var box=[1,3,5,7,9,2,4,6,8];
for(var i=0;i for(var j=0;j if(box[j]>box[j+1]){
var tmp=box[j];
box[j]=box[j+1];
box[j+1]=tmp;
}
}
}
console.log(box);
快速排序:(耗时短)
var box=[1,3,5,7,9,2,4,6,8];
function quick(args){
if(args.length<=1){return args}
var baseIndex=Math.floor(args.length/2);
var baseValue=args.splice(baseIndex,1)[0];
var left=[];
var right=[];
for(var i=0;i if(args[i] left.push(args[i]);
}else{
right.push(args[i]);
}
}
return quick(left).concat(baseValue,quick(right));
}
console.log(quick(box));
sort方法:ascii表方式排序
var box=[1,3,5,7,9,2,4,6,8];
console.log(box.sort());

回答2:

感觉好像逻辑思路有问题,你能找出余下数组项的最值,但是没有和当前值交换位置,最好贴源码上来。说一句,js的数组本来就有sort方法,不用自己实现。