XM18. 数组操作
描述
输入一个无序整数数组,调整数组中数字的顺序, 所有偶数位于数组的前半部分,使得所有奇数位于数组的后半部分。输入描述
给定无序数组。输出描述
所有偶数位于数组的前半部分,所有奇数位于数组的后半部分。示例1
输入:
2 4 5 7 8 1
输出:
2 4 8 7 5 1
C++ 解法, 执行用时: 128ms, 内存消耗: 15848KB, 提交时间: 2020-10-29
#include<bits/stdc++.h> using namespace std; int a[1000005]; int main(){ ios::sync_with_stdio(false); cout.tie(NULL); int n=0; for(;cin>>a[n];++n){ } int l=0,r=n-1; while(l<r){ while(l<r&&a[l]%2==0){ ++l; } while(l<r&&a[r]%2==1){ --r; } swap(a[l],a[r]); } for(int i=0;i<n;++i) cout<<a[i]<<" "; }
C++ 解法, 执行用时: 130ms, 内存消耗: 15776KB, 提交时间: 2020-08-25
#include<bits/stdc++.h> using namespace std; int a[1000005]; int main(){ ios::sync_with_stdio(false); //cout.tie(NULL); int n=0; for(;cin>>a[n];++n){ } int l=0,r=n-1; while(l<r){ while(l<r&&a[l]%2==0){ ++l; } while(l<r&&a[r]%2==1){ --r; } swap(a[l],a[r]); } for(int i=0;i<n;++i) cout<<a[i]<<" "; }