为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript数组奇偶数排序,奇数在前,偶数在后,要求不新建数组。

JavaScript数组奇偶数排序,奇数在前,偶数在后,要求不新建数组。

炎炎设计 2019-05-12 09:47:16
例如:[1,2,3,4,5]排序后:1,3,5,2,4注意:要求不新建数组,即在原数组的基础上更改。
查看完整描述

2 回答

?
子衿沉夜

TA贡献1828条经验 获得超3个赞

如果对奇数间的顺序,和偶数间的顺序不需要和原来保持一致的话,可以参考快排的思想一个指针从左往右搜,一个指针从右往左搜,当左边找到偶数,右边找到奇数时,交换两个数,然后继续查找,直到两个指针相同
                            
查看完整回答
反对 回复 2019-05-12
?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

冒泡排序
letarr=[1,2,3,4,5,7,9,10,13,18];
for(leti=0;ifor(letj=0;jlettmp=arr[j];
if(tmp%2===0&&arr[j+1]%2!==0){
arr[j]=arr[j+1];
arr[j+1]=tmp;
}
}
}
console.log('arr',arr);//[1,3,5,7,9,13,2,4,10,18]
我一开始也以为sort会创建新数组,原来不会
letarr=[1,2,3,4,5,7,9,10,13,18];
arr.sort((a,b)=>{
if(a%2===0){
if(b%2!==0){
return1;
}
return0;
}else
return-1
})
console.log('arr',arr);//[1,3,5,7,9,13,2,4,10,18]
测试了一下sort是真的快,看样子以后不需要用原生的。Array.prototype.sort排序算法
                            
查看完整回答
反对 回复 2019-05-12
  • 2 回答
  • 0 关注
  • 1128 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信