码迷,mamicode.com
首页 > 编程语言 > 详细

调整数组使奇数全部都位于偶数前面

时间:2015-11-06 23:38:16      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:调整数组使奇数全部都位于偶数前面

#include<stdio.h>

void sort(int *p, int len)
{
	int *end = p;
	end = p + len - 1;
	while (p<end)
	{
		if (*p % 2 == 0)
		{
			while (end)
			{
				if (*end % 2 == 1)
				{
					break;
				}
				end--;
			}
			int tmp = *end;
			*end = *p;
			*p = tmp;
			p++;
		}
		else
		{
			p++;
		}
		
	}


}
int main()
{
	int arr[] = { 3,5,4,8,9,5,6,2,6};
	int len = sizeof(arr) / sizeof(arr[0]);
	sort(arr,len);
	int i = 0;
	for (i = 0; i < len; i++)
	{
		printf("%d", arr[i]);
	}



	return 0;
}

输出结果为3,5,5,9,8,4,6,2,6
这道题我的的想法是定上两个标志,一个指向首部一个指向尾部,判断首元素如果是奇数则不管他,如果是偶数则和最后一个比较,这是如果尾部元素是奇数则交换否则尾部元素向前移动,直到找到奇数,依次循环,直到两个标志相遇停下。


本文出自 “痕迹” 博客,请务必保留此出处http://wpfbcr.blog.51cto.com/10696766/1710465

调整数组使奇数全部都位于偶数前面

标签:调整数组使奇数全部都位于偶数前面

原文地址:http://wpfbcr.blog.51cto.com/10696766/1710465

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!