首页 > 试题广场 >

数组操作

[编程题]数组操作
  • 热度指数:13927 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
输入一个无序整数数组,调整数组中数字的顺序, 所有偶数位于数组的前半部分,使得所有奇数位于数组的后半部分。
要求时间复杂度为O(n)。

输入描述:
给定无序数组。
长度不超过1000000。


输出描述:
所有偶数位于数组的前半部分,所有奇数位于数组的后半部分。
如果有多个答案可以输出任意一个正确答案。
示例1

输入

2 4 5 7 8 1

输出

2 4 8 7 5 1

备注:
请自觉使用O(n)的算法。
头像 牛客题解官
发表于 2020-06-05 17:22:11
精华题解 题解 题目难度:简单 知识点:数组、容器、交换函数 解题思路:整体解题方法比较多,保存数据首先想到使用vector容器。第一种可以使用三个vector保存数据,第一个用来保存所有的数据,第二、三个分别保存奇偶数,然后输出即可;第二种使用swap函数,分别从左右搜索,左边遇到奇数就进行标记,右边遇到偶 展开全文
头像 King_long
发表于 2020-03-03 17:27:31
利用deque容器很容易实现,对于奇数和偶数分别从后和前面添加就行 #include<bits/stdc++.h> using namespace std; int main() { deque<int>num; int number; while( 展开全文
头像 舔出新offer
发表于 2022-03-12 20:28:00
#include <vector> #include <queue> using namespace std; int main(){ int n=0; int temp; vector<int> data; whi 展开全文
头像 bao_hu_yuan_zhang
发表于 2024-02-19 11:13:43
#include <iostream> #include <vector> using namespace std; int main() { int a; int i=0; vector <int> b; while(cin&g 展开全文