一个C语言把数组中元素升序排列的问题

来源:百度知道 编辑:UC知道 时间:2024/05/17 16:52:45
大家看下我的程序是这样的,这个程序主要是把数组中元素升序排列且按奇数在前,偶数在后的方法排列出来,我的这个程序可以达到我想要的目的,我问的是有没有更好点的方法达到我的目的,谢!

#include<stdio.h>
#include<conio.h>
main()
{
int a[]={10,9,8,7,6,5,4,3,2,1};
int i,j,t;
clrscr();
for(i=1;i<=9;i++)
{
for(j=0;j<10-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}

}
}
for(j=0;j<=9;j++)
{
if(j%2==0)
{
printf("%d",a[j]);
}
}
for(j=0;j<=9;j++)
{
if(j%2!=0)
{
printf("%d",a[j]);
}
}
getch();
}

你的程序很简练,很好
不要一味的追求简单的程序,程序主要的是复杂度,如果追求最短的语句但是使程序花费更多的时间用在计算上是不划算的
我暂时也想不出更好更简单的方法,有空帮你想想

PS:
回楼上,楼主用的不就是冒泡么。。

排序部分算法可以改进,好多排序的算法都比你这个好,如二分法,冒泡法等等~~~