用数据结构中的快速排序中Partion函数(交换法)的思想解题

今天遇到这样的一道题:

输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。 
意思是给出的数组中把是奇数的数放在数组前面,而偶数放在后面。

咱们先不多说,先看我写得代码:

#include
void divide(int arr[],int size)
{
	int i = 0;
	int temp = 0;
	int *p = arr;
	int *q = arr+size-1;
	while(*p!=*q)
	{
		if((*p%2)==0)
		{
			temp = *p;
		}
		else
		{
			p++;
		}
		if((*q%2)==1)
		{
			*p = *q;
			*q = temp;
		}
		else
		{
			q--;
		}
	}
	for(i=0; i
创建临时存储变量,用于交换位置。

看看代码的运行结果。

用数据结构中的快速排序中Partion函数(交换法)的思想解题_第1张图片




你可能感兴趣的:(c语言,数据结构,c语言)