将数组相邻的两个元素进行比较,最终将元素按照从小到大的顺序从左到右排序,由于在排序过程中,总是小数往前放,大数往后放,就好比气泡往上升,所以称作冒泡排序。
#include <stdio.h>
int main()
{
int i; //比较的轮数
int j; //每轮比较的次数
int med; //替换的中间数据
int rst[5]; //定义数组rst含有5个元素
printf("请输入5个数: "); //打印这句话
for(i = 0; i < 5; i++) //只能有5个元素所以for循化找出5个数
{
scanf("%d", & rst[i]); //将输入的5个数给rst数组的元素赋值
}
for(i = 0; i < 4; i++) //一共五个数需要进行四轮比较才可以得出最终值
{
for(j = 0; j < 4 - i; j++) /*一共5个数需要比较四次,每一轮比较少一次比较的次数,比如第一轮比较需要比较四次,最终最小值就在最后一位元素确定,第二轮比较就只有四个数比较三次*/
{
if(rst[j] > rst[j+1]) //if语句进行比较
{
med = rst[j]; //条件成立把当前元素给中间值
rst[j] = rst[j + 1]; //把后一位元素给当前元素
rst[j + 1] = med; //把中间值给后一位元素,这时后一位元素为较小值
}
}
}
printf("排序后的结果为:"); //打印这句话
for(i = 0; i < 5; i++) //for语句将得到的数组排序打印
{
printf("%d ",rst[i]);
}
printf("\n"); //换行
return 0;
}