1.冒泡排序
以一个有10个数据的数组为例:要求从小到大排序
将一个数据不断地与下一个数据比较,若大小关系符合要求,则交换,继续和下一个数比较;若不符合要求,则不执行操作。代码实现如下:
#include<stdio.h>
int main()
{
int a[10];
int i,j,t;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);//输入这个数组
printf("\n");
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;
}
printf("由小到大排序:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
上面代码要烂熟于心,信手拈来。
2. 选择排序
选择排序与冒泡排序相反,每轮结束后从最前面开始的数逐一符合要求。
代码实现如下:
#include<stdio.h>
int main()
{
int a[10];
int i,j,t;
printf("请输入10个数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);//输入这个数组
printf("\n");
for(j=0;j<9;j++)
for(i=j+1;i<10;i++)
if(a[j]>a[i])
{
t=a[j];
a[j]=a[i];
a[i]=t;
}
printf("由小到大排序:\n");
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}