冒泡法书上有,也很好找。我给出两种别的排序法,C版本的:
1.
//插入法排序
//假定从大到小
#include <stdio.h>
int main(int argc, char *argv[])
{
int i,j,k,a[10];
int buff;//储存数据
int sorted=1;//已排序的个数,假设初始为一;
printf("Input ten numbers:\n");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
printf("\n");
for(i=1;i<=9;i++)
{
for(j=sorted-1;j>=0;j--)
{
if(a[j]>a[i])
{
//insert(j);
buff=a[i];
for(k=i;k>=j+2;k--)
{
a[k]=a[k-1];
}
a[j+1]=buff;
break;
}
else// insert(0);
{
buff=a[i];
for(k=i;k>=1;k--)
{
a[k]=a[k-1];
}
a[0]=buff;
break;
}
}
sorted++;
}
for(i=0;i<=9;i++)
{
printf("%d\n",a[i]);
}
return 0;
}
2.//选择法排序;
#include <stdio.h>
int main(int argc, char *argv[])
{
int i, j,t,min,a[11];
printf("Please input ten numbers:\n");
for(i=0;i<=9;i++)
scanf("%d",&a[i]);
for(j=0;j<=8;j++)
{
min=a[j];
for(i=j+1;i<=9;i++)
{
if(a[i]<min)
{
t=min;
min=a[i];
a[i]=t;
}
continue;
}
a[j]=min;
}
for(j=0;j<=9;j++)
printf("%d\n",a[j]);
return 0;
}
温馨提示:答案为网友推荐,仅供参考