基本思路:利用冒泡的思想,碰到奇数则往前移
利用nthOdd来记录当前是第n个奇数,nthOdd初始化为-1,碰到第一个奇数,nthOdd自增为0,刚好对应数组下标。
循环一趟,若碰到奇数,则nthOdd+1,接着把该奇数前面的偶数都往后移,将该奇数放到第nthOdd位。
function reOrderArray( array ) {
// nthOdd用来记录当前是第几个奇数---对应数组下标
let nthOdd = -1;
for(let i = 0; i < array.length; i++){
if(array[i] % 2 == 1){
nthOdd++;
let curOdd = array[i];
// 如果是个奇数,就把前面的偶数往后移一位,腾出来的位置即oddNth位,放入该奇数
for(let j = i; j > nthOdd; j--){
array[j] = array[j-1];
}
array[nthOdd] = curOdd;
}
}
return array;
}


京公网安备 11010502036488号