【问题描述】请调整顺序表的数据,使得左边为奇数,右边为偶数,要求时间复杂度为O(n)。
【样例输入】25 34 57 50 16 48 9 62 0
【样例输出】25 9 57 50 16 48 34 62
#include<iostream>
using namespace std;
int main()
{
int arr[50];
int i=0,n=0,cot=0,j,t;
while(cin>>n&&n!=0)
{
arr[i]=n;
i++;
cot++;
}
int left=0,right=cot-1;
while(left<=right)
{
if(arr[left]%2!=0)
left++;
else if(arr[left]%2==0)
{
while(arr[right]%2==0)
right--;
t=arr[left];
arr[left]=arr[right];
arr[right]=t;
}
}
for(i=0;i<cot;i++)
cout<<arr[i]<<' ';
return 0;
}