已知数组A[n]中的元素为整型,设计算法将其调整为左右两部分,左边所有元素为奇数,右边所有元素为偶数,并要求算法的时间复杂度为O(n)。
代码实现部分:
#include <iostream>
using namespace std;
int main()
{
int n;
cout<<"请输入数组的长度:";
cin>>n;
int * A = new int[n];
int * B = new int[n]; //存奇数的数组
int * C = new int[n]; //存偶数的数组
int b = 0 , c = 0 ;
cout<<"请输入输入的各个元素:"<<endl;
for(int i = 0 ; i < n ; i++)
cin>>A[i];
int k ;
for(int i = 0 ; i < n ; i++)
{
if( A[i] % 2 ) //将数组中的数按奇数、偶数的方式存在两个数组中
B[b++] = A[i];
else
C[c++] = A[i];
}
for(int i = 0 ; i < b ; i++)
cout<<B[i]<<' ';
cout<<" ";
for(int i = 0 ; i < c ; i++)
cout<<C[i]<<' ';
}