/*
写一个冒泡排序方法,
bubblesort(int data[],int numbers_of_data){...}
要求如下:
1、满足数组data中的所有偶数和所有奇数均是递增排序。
2、满足data中奇、偶数分别排开,偶在前,奇在后,如:
原始data: 1 4 8 5 6 9 2 7
经过你写的函数排序后变成: 2 4 6 8 1 5 7
*/
void bubblesort(int data[],int number_of_data)
{
int j=number_of_data;
int tmp;
int i,k;
for(k=0;k<number_of_data-1;k++)
{
for(i=0;i<j-1;i++)
{
if(((data[i]%2!=0)&&(data[i+1]%2!=0))||((data[i]%2==0)&&(data[i+1]%2==0)))//均为奇数或偶数
{
if(data[i]>data[i+1])
{
tmp=data[i+1];
data[i+1]=data[i];
data[i]=tmp;
}
}
if((data[i]%2!=0)&&(data[i+1]%2==0))//i为奇数,i+1为偶数
{
tmp=data[i+1];
data[i+1]=data[i];
data[i]=tmp;
}
}
j--;
}
}
main()
{
int testdata[8]={1,4,8,5,6,9,2,7};
int i;
printf("Before sort:testdata[i]/n");
for(i=0;i<8;i++)
{
printf("%d ",testdata[i]);
}
bubblesort(testdata,8);
printf("/n");
printf("After sort:testdata[i]/n");
for(i=0;i<8;i++)
printf("%d ",testdata[i]);
}