两个指针,一个指向最前,一个指向最后,依次进行交换
代码:
#include<iostream>
using namespace std;
//使奇数位于偶数前面
void reSort(int *pData,int length){
if(NULL == pData || length <= 0)
return ;
int *pBegin = pData;
int *pEnd = pData + length -1;
while(pBegin < pEnd){
//奇数向前移动
while(pBegin < pEnd &&( *pBegin & 0x1 ) != 0)
pBegin ++;
//偶数向前移动
while(pBegin < pEnd &&(*pEnd & 0x1) == 0)
pEnd --;
if(pBegin < pEnd){
int temp;
temp = *pBegin;
*pBegin = *pEnd;
*pEnd = temp;
}
}
}
void print(int *number,int length){
for(int i = 0; i< length ;i++){
printf("%d",number[i]);
}
}
int main()
{
int data[] = {1,2,2,2,5,5,5};
reSort(data,sizeof(data) / sizeof(int) );
print(data,sizeof(data) / sizeof(int) );
return 0;
} 给定一个整数数组,奇数位于偶数前面,布布扣,bubuko.com
原文地址:http://blog.csdn.net/buyingfei8888/article/details/38513395