题目:输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中
所有奇数全部位于前半数组,所有偶数全部位于后半数组。
代码实现如下:
<span style="font-size:14px;">#include<stdio.h>
void odd_before(int arr[],int sz)
{
int left = 0;
int right = sz-1;
int tmp = 0;
while(left<right)
{
while((arr[left]%2 == 0)&&(arr[right]%2 == 1))
//前边为偶数后边为奇数时交换这两个数
{
tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
}
while(arr[left]%2 == 1)//当前边为奇数left+1,向后查找
{
left++;
}
while(arr[right]%2 == 0)//当后边不为奇数时right-1,向前查找
{
right--;
}
}
}
int main()
{
int arr[] = {1,2,4,3,6,5,0};
int sz = sizeof(arr)/sizeof(arr[0]);
int i = 0;
odd_before(arr,sz);
for(i = 0;i<sz;i++)
{
printf("%d",arr[i]);
}
printf("\n");
system("pause");
return 0;
}</span>运行结果:
原文:http://blog.csdn.net/wodeqingtian1234/article/details/51336491