王小刚 廊坊师范学院信息技术提高班 十二期

一、选择排序(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]);

}

风景如何,其实并不重要。重要的是,你在我的身边。

王小刚 廊坊师范学院信息技术提高班 十二期

相关文章:

你感兴趣的文章:

标签云: