4、冒泡排序(升序)
思路:N个数,每次比较相邻的两个数,如果前面的数大就相互交换,这样小的数就会像气
泡一样往前冒。一趟排序完成后最后一个数最大。共进行N-1趟排序。
完整程序
#include<stdio.h>
#define N 10
int main()
{
int num[N];
int i,j;
int t;
for(i=0;i<N;i++)
scanf("%d",&num[i]);
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(num[j]>num[j+1])
{t=num[j];num[j]=num[j+1];num[j+1]=t;}
for(i=0;i<N;i++)
printf("%d ",num[i]);
return 0;
}
封装函数
void maopao(int num[N])
{
int i,j;
int t;
for(i=0;i<N-1;i++)
for(j=0;j<N-1-i;j++)
if(num[j]>num[j+1])
{t=num[j];num[j]=num[j+1];num[j+1]=t;}
}
调用函数
#include<stdio.h>
#define N 10
int main()
{
int num[N];
int i,j;
int t;
void maopao(int num[N]);
for(i=0;i<N;i++)
scanf("%d",&num[i]);
maopao(num);
for(i=0;i<N;i++)
printf("%d ",num[i]);
return 0;
}