void oddEvenSort(int* arr,int count)
{
int left=0;
int right=count-1;
int midval=arr[left];
while(left<=right)
{
while(left<=right && arr[right]%2==1)
--right;
if(left<=right)
{
arr[left]=arr[right];
++left;
}
while(left<=right && arr[left]%2==0)
++left;
if(left<=right)
{
arr[right]=arr[left];
--right;
}
}
arr[left]=midval;
}
int _tmain(int argc, _TCHAR* argv[])
{
srand(time(0));
int size=rand()%20;
int* arr=new int[size];
generate_n(arr,size,genInt);
copy(arr,arr+size,ostream_iterator<int>(cout," "));
cout<<endl;
oddEvenSort(arr,size);
copy(arr,arr+size,ostream_iterator<int>(cout," "));
cout<<endl;
getchar();
return 0;
}
写正确函数需要注意的地方:奇偶数分开,左边偶数,右边奇数。
最新推荐文章于 2021-06-07 13:07:32 发布