//要求时间复杂度为o(n),空间复杂度为o(1)
#include<stdio.h>
void main()
{
int array[10]={1,2,3,4,5,6,7,8,9,10};
int temp=0;
int i,j;
i=0;
j=9;
while(i<j)
{
if((array[i]%2==0)&&(array[j]%2!=0))//偶奇
{
temp=array[i];
array[i]=array[j];
array[j]=temp;
i++;
j--;
}
else if((array[i]%2!=0)&&(array[j]%2==0))//奇偶
{
i++;
j--;
}
else if((array[i]%2!=0)&&(array[j]%2!=0))//奇奇
{
i++;
}
else if((array[i]%2==0)&&(array[j]%2==0))//偶偶
{
j--;
}
}
for(i=0;i<10;i++)
printf("%d ",array[i]);
}
数组左部分为奇,右部分为偶
数组奇偶排序
最新推荐文章于 2024-11-20 17:20:19 发布
本文介绍了一个简单的算法,用于将一个整数数组中的所有奇数和偶数分别排列在一起,同时保持时间复杂度为O(n)且空间复杂度为O(1)。通过使用两个指针从两端向中间移动的方法来实现这一目标。
1331

被折叠的 条评论
为什么被折叠?



