您的位置:首页 > 其它

lvs初识与简单配置

2013-11-16 19:50 204 查看
调整数组使奇数全部都位于偶数前面。
输入一个整数数组,实现一个函数,来调整该数组中数字的顺序
使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
方法一:
从两边向中间转换位置
指针
#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;
}
方法二:
数组
#include<stdio.h>
#include<stdlib.h>

void swap(int *pa, int *pb)
{
int tmp=*pa;
*pa = *pb;
*pb = tmp;

}
int main()
{
int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
int size = sizeof(arr) / sizeof(arr[0]);

int start = 0;
int end = size - 1;
int i = 0;

while (start < end)
{
while ((start < end) && (arr[start]) % 2 != 0)
{
start++;
}
while ((start < end) && (arr[end]) % 2 == 0)
{
end --;
}
swap(arr + start, arr + end);
start++;
end--;
}
for (i = 0; i < size; i++)
printf("%d ", arr[i]);
system("pause");
return 0;

}


本文出自 “无以伦比的暖阳” 博客,请务必保留此出处http://10797127.blog.51cto.com/10787127/1719763
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: