题目:
将数组中的奇数调整到前面,且不改变原奇偶数的顺序。
分析:
用两数组分别装原数组的奇偶数,最后再装入原数组中。
空间换时间。
#include<iostream>
using namespace std;
int main()
{
int m;
cout<<"请输入一维数组的大小:";
cin>>m;
int a[m];
for(int i=0;i<m;i++)
{
cin>>a[i];
}
int b[m],c[m];
int j=0;
int k=0;
//将原数组中的奇偶数分离到两个数组中
for(int i=0;i<m;i++)
{
if(a[i]%2==0)
{
b[j]=a[i];
j++;
}
else
{
c[k]=a[i];
k++;
}
}
//依次将两数组中的数装入原数组中
for(int i=0;i<k;i++)
{
a[i]=c[i];
}
for(int i=0;i<j;i++)
{
a[i+k]=b[i];
}
for(int i=0;i<m;i++)
{
cout<<a[i]<<" ";
}
return 0;
}