调整数组使奇数全部都位于偶数前面。
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序
使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
方法一:
从两边向中间转换位置
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
void even_old(int *arr1,int size)
{
assert(arr1);
int *p1 = arr1;
int *p2 = arr1+size-1;
if (size == 0||p1==NULL)
return 0;
while (p1<p2)
{
if ((p1<p2)&&(*p2 % 2==0))
{
p2--;
}
if ((p1 < p2) && (*p1 % 2 != 0))
{
p1++;
}
if (p1 < p2)
{
int tmp = 0;
tmp = *p1;
*p1 = *p2;
*p2 = tmp;
}
}
}
int main()
{
int arr[10] = { 2, 4, 6, 8, 0, 1, 3, 5, 7, 9 };
int size = sizeof(arr) / sizeof(arr[0]);
int i = 0;
even_old(arr,size);
for (i = 0; i < size;i++)
printf("%d ", arr[i]);
system("pause");
return 0;
}本文出自 “无以伦比的暖阳” 博客,请务必保留此出处http://10797127.blog.51cto.com/10787127/1719763
原文:http://10797127.blog.51cto.com/10787127/1719763