[求助]请问有什么好的算法实现奇偶排序
譬如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);
}
少写一个数组倒可以~但只用原来的数组,我看困难
这样啊
我再尝试尝试,谢谢版主