C++ 分离奇偶数
你根据标题”分离奇偶数”的意思理解了吗?让我们解码一下。
这个问题的目标是在保留元素的相对顺序的情况下,将输入数组中的奇数和偶数分开,这意味着偶数应该保持与输入中的相对顺序相同,奇数也应该保持与输入中的相对顺序相同。
假设我们有[3, 5, 2, 6, 8, 9, 10, 11]作为输入,那么输出将是[2, 6, 8, 10, 3, 5, 9, 11]
方法
让我们来看看我们将要遵循的实现代码的方法。
- 首先,我们创建两个不同的数组,一个用来存储输入数组的偶数,另一个用来存储输入数组的奇数。
-
然后,我们从第一个元素开始遍历输入数组。
-
如果存储在输入数组中的元素是偶数,我们将其推入even_array,否则推入odd_array。
-
然后,我们清空输入数组,然后先将even_array的元素推入输入数组,然后将odd_array的元素推入输入数组。
-
根据需要重新排列元素后,可以将输入数组元素打印到控制台上。
代码实现
这是C++程序实现分离奇偶数的示例。
示例
#include <iostream>
#include <vector>
using namespace std;
void segregate_even_odd(vector<int>& arr) {
vector<int> even;
vector<int> odd;
for (int num : arr) {
if (num % 2 == 0) {
even.push_back(num);
} else {
odd.push_back(num);
}
}
arr.clear();
for (int num : even) {
arr.push_back(num);
}
for (int num : odd) {
arr.push_back(num);
}
}
int main() {
int n = 5;
vector<int> arr = {1, 2, 3, 4, 5};
segregate_even_odd(arr);
cout << "After segregating even and odd numbers: ";
for (int num : arr) {
cout << num << " ";
}
cout << endl;
return 0;
}
输出
After segregating even and odd numbers: 2 4 1 3 5
时间复杂度:O(n)
空间复杂度:O(n)
结论
在本文中,我们试图解释在数组中将偶数和奇数分开并打印新排列的方法,其中偶数和奇数的顺序不变。希望本文能帮助你更好地理解这个概念。