奇偶排序
来源:5-3 奇偶排序
学无止境DDH
2019-03-05
看到题目的第一眼,脑海首先想出的一种蠢笨的方法,算是对本题的扩展。。。
const sortArrayByParity = A => {
// 分别定义,存放奇数、偶数和结果的空数组
let oddArr = []
let evenArr = []
let resultArr = []
// 遍历A,进行奇偶数分类
A.forEach(item => {
if (item % 2) {
oddArr.push(item)
} else {
evenArr.push(item)
}
})
//循环依次插入奇偶数
for (let i = 0; i < A.length; i++) {
if (i % 2) {
resultArr.push(oddArr[(i - 1) / 2])
} else {
resultArr.push(evenArr[i / 2])
}
}
return resultArr
}
3回答
-
nkliyc
2019-06-18
export default (arr) => {
let result = new Array(arr.length)
// arr.sort((a, b) => a - b)
for(let i = 0,len = arr.length, j = 0, k = 0; i < len; i++) {
if(arr[i] % 2 === 0) {
result[j * 2] = arr[i]
j++
} else {
result[k * 2 + 1] = arr[i]
k++
}
}
return result
};
00 -
旋涡鸣人_
2019-04-01
export default (arr) => {
arr.sort((a, b) => a - b)
// 对数组进行遍历
let odds = []
let evens = []
arr.forEach((item, i) => {
if (item % 2 === 1) {
evens.push(item)
} else {
odds.push(item)
}
})
let res = []
odds.forEach((item, i) => {
res[2 * i] = item
})
evens.forEach((item, i) => {
res[2 * i + 1] = item
})
console.log(res, 'sort1...')
return res
}
跟上面同学的类似,执行效率我觉得老师的是最简单的,执行次数少。。。
00 -
快乐动起来呀
2019-03-05
同学可以把题目放到issue区吗,方便大家review,感谢
00
相似问题