JavaScript 中的一種特殊排序演算法
我們需要編寫一個 JavaScript 函式,該函式僅接受一個整數陣列作為引數。
函式應根據以下條件對陣列進行排序 -
所有偶數按升序排序
所有奇數按降序排序
偶數和奇數的相對位置保持不變
例如 -
如果輸入陣列為 -
const arr = [12, 17, 15, 24, 1, 6];
則輸出應為 -
const output = [6, 17, 15, 12, 1, 24];
示例
以下為程式碼 -
const arr = [12, 17, 15, 24, 1, 6];
const specialSort = (nums = []) => {
const oddArr = [], evenArr = [];
for (let i = 0; i < nums.length; i++){
if (nums[i] & 1) {
oddArr.push(i);
} else {
evenArr.push(i);
}
}
nums.sort((a, b) => a - b);
let odd = oddArr.length - 1, even = 0;
const res = [];
for (let i = 0; i < nums.length; i++){
if (nums[i] & 1) {
res[oddArr[odd--]] = nums[i];
} else {
res[evenArr[even++]] = nums[i];
}
}
return res;
}輸出
以下為控制檯輸出 -
[ 6, 17, 15, 12, 1, 24 ]
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP