分离奇偶数


你如何理解标题“分离奇偶数”?让我们来解读一下。

这个问题的目标是在输入数组中分离奇数和偶数,同时保持元素的顺序,这意味着偶数应该保持与输入中相同的相对顺序,奇数也应该保持与输入中相同的相对顺序。

假设我们有 [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)

结论

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

更新于: 2023年8月23日

685 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告