Js选择排序的问题。我这段代码,为何实现不了。
2个回答
展开全部
大哥,你这段代码问题大了。给你3个排序的方式,自己研究。
冒泡排序:(耗时长)
var box=[1,3,5,7,9,2,4,6,8];
for(var i=0;i<box.length;i++){
for(var j=0;j<box.length-i;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<args.length;i++){
if(args[i]<baseValue){
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());
冒泡排序:(耗时长)
var box=[1,3,5,7,9,2,4,6,8];
for(var i=0;i<box.length;i++){
for(var j=0;j<box.length-i;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<args.length;i++){
if(args[i]<baseValue){
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());
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询