一、选择排序(10个数为例)
# include <stdio.h>
void main()
{
int a[10],i,j,k,t;
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (i=0;i<9;i++)
{
k=i;
for (j=i+1;j<10;j++)
if(a[k]>a[j])
k=j;
t=a[i];
a[i]=a[k];
a[k]=t;
}
for (i=0;i<10;i++)
printf("%d",a[i]);
}
二、插入排序(给6个数排序为例)
# include<stdio.h>
void main()
{
int a[6],i,j,k;
for (i=0;i<6;i++)
scanf("%d",&a[i]);
for (j=1;j<6;j++)
{
k=a[j];
for (i=j-1;i>=0 && a[i]>k;i – -)
a[i+1]=a[i];
a[i+1]=k;
}
}
插入排序的要点是 :从下标为k=1开始,把a[k]拿出来,如果a[k]前面的数a[]大于a[k],就把a[]放到它自己的后面,,原来的位置变为空,如此循环,直到条件不满足,再把a[k]的值放到此时为空 的地方。
三.起泡排序(10个数 排序为例)
# include<stdio.h>
void main()
{
int a[10],i,j,t;
for (i=0;i<10;i++)
scanf("%d",&a[i]);
for (j=0;j<9;j++)
for(i=0;i<9-j;I++)
if (a[i]>a[i+1])
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
for (i=0;i<10;i++)
printf("%d",a[i]);
}
起泡排序很容易理解 ,起泡法是从一端开始比较的,第一次循环就是把最大数放到最后一个位置,第二次循环就是把第二最大数放到倒数第二位置。整个过程就像烧开水一样,较小值像水中的气泡一样逐趟往上冒,每一趟都有一块"最大"的石头沉到水底。
四、逆序
以5个数为例
# include<stdio.h>
void main()
{
int a[5],i;
for (i=0;i<5;i++)
scanf("%d",&a[i]);
for (i=0;i<2;i++)
{
t=a[i];
a[i]=a[4 – i];
a[4 – i]=t;
}
for (i=0;i<5;i++)
printf("%d",a[i]);
}
风景如何,其实并不重要。重要的是,你在我的身边。