目录
算法介绍:
这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。
以十个数举例:第一轮先确定最后一个数,第一个数与第二个数比较,如果大于第二个数,交换位置,然后第二个数与第三个数比较,如果大于就交换位置,以此类推,进行九次比较后,最后一位数就变成了最大值。然后进行第二轮,比较八次后,剩下九个数中的最大数位置挪到倒数第二位。进行九轮后,十个数的位置就变成了从小到大。
编写程序:
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main()
{
int arr[10];//定义一个数组存储十个数
int i, j;
int t;
for (i = 0; i < 10; i++)//利用循环给数组赋值
scanf("%d", &arr[i]);
for(i=1;i<10;i++)//进行九轮
for(j=0;j<10-i;j++)//每轮进行比较数
if (arr[j] > arr[j + 1])
{
t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
for (i = 0; i < 10; i++)//利用循环输出数组
printf("%d ", arr[i]);
return 0;
}