题目描述:输入一个整数数组,调整数组的顺序,使得奇数在前,偶数在后
思路分析:可按照快排的思想进行分析,如下:
代码如下:
#include<iostream>
using namespace std;
void Sort(int *arr,int len)//奇数在前,偶数在后
{
if(arr == NULL || len<=0)
{
return;
}
int low = 0;
int high = len-1;
int tmp = 0;
while(low<high)
{
while(arr[low] % 2 != 0 && low<high)
{
low ++ ;
}
tmp = arr[low];
while(arr[high] % 2 == 0 && low<high)
{
high--;
}
arr[low] = arr[high];
arr[high] = tmp;
}
}
int main()
{
int num = 0;
cin>>num;
int *arr = new int[num];
for(int i=0;i<num;++i)
{
cin>>arr[i];
}
Sort(arr,num);
for(int i=0;i<num;++i)
{
cout<<arr[i]<<" ";
}
return 0;
}
总结:不管是负数在前正数在后,还是除5有余在前不有余在后,都可以用此方法,思想很重要哦~且用且琢磨~