#include <stdio.h>
int main()
{
int i,j,t,a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
for(j=0;j<9-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
}
for(j=0;j<10;j++)
{
printf("%d\n",a[j]);
}
return 0;
}
i表示第几趟
j表示次数第几次:、
也就是说
第一趟(i=0),比较9-i次(9)次
第二趟(i=1),比较9-i次(8)次
第三趟(i=2),比较9-i次(7)次
第四趟(i=3),比较9-i次(6)次
第五趟(i=4),比较9-i次(5)次
第六趟(i=5),比较9-i次(4)次
第七趟(i=6),比较9-i次(3)次
第八趟(i=7),比较9-i次(2)次
第九趟(i=8),比较9-i次(1)次
原理:
每两个相邻的数进行比较,小的数在前,大的数在后;
10个数只需要比较9趟,也就是i走【0~9】趟,j每一趟对应走【0~9-i】次
推广:
n个数比较的话
i走【0~n-1】趟,j每一趟对应走【0~n-1-i】次
第一趟: a[0]与a[1]比较 a[1]与a[2]比较 ... a[8]与a[9]比较
第二趟 a[0]与a[1]比较 a[1]与a[2]比较 ... a[7]与a[8]比较
第三趟 a[0]与a[1]比较 a[1]与a[2]比较 ... a[6]与a[7]比较
第四趟 a[0]与a[1]比较 a[1]与a[2]比较 ... a[5]与a[6]比较
第五趟 a[0]与a[1]比较 a[1]与a[2]比较 ... a[4]与a[5]比较
第六趟 a[0]与a[1]比较 a[1]与a[2]比较 ... a[3]与a[4]比较
第七趟 a[0]与a[1]比较 a[1]与a[2]比较 a[2]与a[3]比较
第八趟 a[0]与a[1]比较 a[1]与a[2]比较
第九趟 a[0]与a[1]比较
#include <stdio.h>
int main()
{
int i,j,t,a[10];
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<=8;i++)
{
for(j=i;j<=9;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
for(j=0;j<10;j++)
{
printf("%d\n",a[j]);
}
return 0;
}
i表示第几趟
j表示次数第几次:、
也就是说
第一趟(i=0),比较9-i次(9)次
第二趟(i=1),比较9-i次(8)次
第三趟(i=2),比较9-i次(7)次
第四趟(i=3),比较9-i次(6)次
第五趟(i=4),比较9-i次(5)次
第六趟(i=5),比较9-i次(4)次
第七趟(i=6),比较9-i次(3)次
第八趟(i=7),比较9-i次(2)次
第九趟(i=8),比较9-i次(1)次
原理:
每一个数,依次和其他几个数比较,小的数在前,大的数在后;
10个数只需要比较9趟,也就是i走【0~9】趟,j每一趟对应走【0~9-i】次
推广:
n个数比较的话
i走【0~n-1】趟,j每一趟对应走【0~n-1-i】次
第一趟: a[0]与a[1]比较 a[0]与a[2]比较 ... a[0]与a[9]比较
第二趟 a[1]与a[2]比较 a[1]与a[3]比较 ... a[1]与a[9]比较
第三趟 a[2]与a[3]比较 a[2]与a[4]比较 ... a[2]与a[9]比较
第四趟 a[3]与a[4]比较 a[3]与a[5]比较 ... a[3]与a[9]比较
第五趟 a[4]与a[5]比较 a[4]与a[6]比较 ... a[4]与a[9]比较
第六趟 a[5]与a[6]比较 a[5]与a[7]比较 ... a[5]与a[9]比较
第七趟 a[6]与a[7]比较 a[6]与a[8]比较 a[6]与a[9]比较
第八趟 a[7]与a[8]比较 a[7]与a[9]比较
第九趟 a[8]与a[9]比较