一个数组里有奇数有偶数(乱序),调整数组顺序使奇数位于偶数前面。(测试用例仅做参考,我们会根据代码质量进行评分) 输入描述: 第一行输入整数n。 第二行输入n个整数。 输出描述: 输出排序后的n个整数。 输入样例: 4 2 3 1 23 输出样例: 3 1 23 2 纯js代码实现
时间: 2024-03-01 11:52:33 浏览: 103
好的,这里给出纯 JavaScript 的代码实现:
```javascript
// 获取输入
const input = readline();
const nums = input.split(' ').map(Number);
const n = nums[0];
const array = nums.slice(1);
// 定义新数组
const newArray = new Array(n).fill(0);
// 遍历原数组,将奇数和偶数分别存入新数组的前半部分和后半部分
let indexOdd = 0;
let indexEven = n - 1;
for (let i = 0; i < n; i++) {
const num = array[i];
if (num % 2 === 1) {
newArray[indexOdd] = num;
indexOdd++;
} else {
newArray[indexEven] = num;
indexEven--;
}
}
// 输出新数组
console.log(newArray.join(' '));
```
这里使用了 Node.js 的 readline 模块来获取输入。希望能够帮助到你!
相关问题
用c++写一个代码:题目描述 一个数组里有奇数有偶数(乱序),调整数组顺序使奇数位于偶数前面。(测试用例仅做参考,我们会根据代码质量进行评分) 输入描述: 第一行输入整数n。 第二行输入n个整数。 输出描述: 输出排序后的n个整数。
Sure! 这是一个用C++编写的解决方案,可以将奇数放在偶数面。
```cpp
#include <iostream>
#include <>
using namespace std;
void ReorderArray(vector>& nums) {
int left = 0, = nums.size() - 1;
while (left < right) {
while (left < right && (nums[left] % 2) != 0) {
left++;
}
while (left < right && (nums[right] % 2) == 0) {
right--;
}
if (left < right) {
swap(nums[left], nums[right]);
}
}
}
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
ReorderArray(nums);
for (int i = 0; i < n; i++) {
cout << nums[i] << " ";
}
return 0;
}
```
这段代码首先定义了一个 `ReorderArray` 函数,它使用双指针方法将奇数放在偶数前面。然后在 `main` 函数中,我们首先读取输入的整数 `n`,然后读取 `n` 个整数作为数组元素。调用 `ReorderArray` 函数后,输出排序后的数组。
希望这个代码对你有帮助!如果有任何疑问,请随时提出。
题目描述 给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。(测试用例仅做参考,我们会根据代码质量进行评分) 输入描述: 第一行输入整数n。(1<=n<=1000)表示数组大小 第二行输入n个整数a.(1<=n<=100) 输出描述: 输出重排之后的数组。
以下是一个实现将数组重新排列,使得数组左边为奇数,右边为偶数的示例代码:
```python
n = int(input()) # 输入数组大小
a = list(map(int, input().split())) # 输入数组元素
# 使用双指针进行数组重排
left = 0
right = n - 1
while left < right:
# 左指针指向的元素为奇数时,向右移动左指针
while a[left] % 2 == 1:
left += 1
# 右指针指向的元素为偶数时,向左移动右指针
while a[right] % 2 == 0:
right -= 1
# 如果左指针仍在右指针的左侧,则交换两个指针指向的元素
if left < right:
a[left], a[right] = a[right], a[left]
left += 1
right -= 1
# 输出重排之后的数组
for num in a:
print(num, end=' ')
```
首先,我们通过输入获取数组大小`n`和`n`个整数元素。然后,我们使用双指针方法进行数组重排,将奇数放在左边,偶数放在右边。最后,我们按顺序输出重排后的数组元素。
阅读全文