对于刚刚进入大学的我来说,数组是一个大大的坑,跳进去em......就进去了;因为学习了排序,所以就整理一下数组排序的方
法。——起泡法排序
使用起泡法对n个整数进行升序排列
所谓起泡法:就是从前到后依次比较相邻的两个数,如果前面的数大,则进行交换,经过一轮又一轮的比较最后一个数就
是最大的,然后对剩余的序列进行相同的操作。
下来看代码
#include <stdio.h>
#include <stdlib.h>int main()
{
int n;
scanf("%d",&n);//输入进行比较的整数的个数
int a[n];
int i,j,t;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
printf("\n");
for(j=1;j<n;j++)//外循环控制排序趟数,比内循环少一趟。
{
for(i=0;i<n;i++)//进行比较,逆序则交换
{
if(a[i]>a[i+1])//互换位置
{
t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
for(i=0;i<n;i++)
{
printf("%d",a[i]);
}
printf("\n");
return 0;
}
输入
6
9 8 5 4 2 0
输出
024589
这就是起泡法的大致流程,简单易懂(虽然学的时候有些费劲),但比较次数有些多,当数据较大时,比较耗时。
PS:本博文归中国石油大学胜利学院所有
BY:李佳胥