例如:[1,2,3,4,5]排序后:1,3,5,2,4注意:要求不新建数组,即在原数组的基础上更改。
2 回答
子衿沉夜
TA贡献1828条经验 获得超3个赞
如果对奇数间的顺序,和偶数间的顺序不需要和原来保持一致的话,可以参考快排的思想一个指针从左往右搜,一个指针从右往左搜,当左边找到偶数,右边找到奇数时,交换两个数,然后继续查找,直到两个指针相同
潇潇雨雨
TA贡献1833条经验 获得超4个赞
冒泡排序letarr=[1,2,3,4,5,7,9,10,13,18];for(leti=0;ifor(letj=0;j lettmp=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;}elsereturn-1})console.log('arr',arr);//[1,3,5,7,9,13,2,4,10,18]测试了一下sort是真的快,看样子以后不需要用原生的。Array.prototype.sort排序算法
添加回答
举报
0/150
提交
取消