您的位置:首页 > 其它

4.给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。 要求:空间复杂度O(1),时间复杂度为O(n)

2015-05-28 17:54 781 查看
//给定一个存放整数的数组,重新排列数组使得数组左边为奇数,右边为偶数。
//要求:空间复杂度O(1),时间复杂度为O(n)

#include<cstdlib>
#include<iostream>
using namespace std;

void reform(int (&arr)[6])
{
int size=sizeof(arr)/sizeof(int);
int left=0,right=size-1;

while(left<right)
{
while(arr[left]%2 == 1 && left<right) ++left;
while(arr[right]%2 ==0 && left<right) --right;
swap(arr[left],arr[right]);
}
}

void main()
{
int a[]={1,2,3,4,5,6};
reform(a);
for(int i=0;i<6;i++)
{
cout<<a[i]<<" ";
}
system("pause");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐