[求助]请问有什么好的算法实现奇偶排序
譬如a[9]={1,2,3,4,5,6,7,8,9}要求排序后得到这个一个数组:a[9]={2,4,6,8,1,3,5,7,9}
有人知道算法吗?
谢谢
说说我的想法
我是想用scanf函数得到一组数字,然后通过函数调用实现对他们的奇偶排序
而我想这些动作都在一个数组里面完成
或者你看看我这个尝试(但是无法完成)
#include<iostream>
void pick(int x[],int n)
{
int i=0,j=0;
while(x[i++]%2==0)
x[j++]=x[i];
i=0;
while(x[i++]%2)
x[j++]=x[i];
}
void sort(int m[],int len)
{
int i,j,k,t;
for(i=0;i<len-1;i++)
{k=i;
for(j=i+1;j<len;j++)
if(m[k]>m[j])k=j;
if(k!=i)
{t=m[k];m[k]=m[i];m[i]=t;}
}
}
void main()
{
int a[20];
printf("Please input the numbers:\n");
scanf("%d",a);
printf("\nThe unsort numbers:\n%d",a);
printf("\n");
pick(a,20);
sort(a,20);
printf("The sorted numbers:\n%d",a);
}