C++ 分离奇偶数

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)

结论

在本文中,我们试图解释在数组中将偶数和奇数分开并打印新排列的方法,其中偶数和奇数的顺序不变。希望本文能帮助你更好地理解这个概念。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程