冒泡排序是一种比较常用的基础的排序算法,冒泡排序的基本思想是:每次比较两个相邻的元素,如果它们的顺序错误就把它们交换 过来。 下列是以从大到小排列为例讲解。因为是按照从大到小排列所以越小的越靠后面
该算法是通过循环嵌套实现的,首先外循环表示有n个数需要排序,因为是n个数所以只需要循环n-1次就可以了,外循环每循环一次就表示确定了一个数字的位置。而内循环则是从头开始将相邻的两个数进行比较,因为是按照从大到小的顺序排列所以两个数比较,小的数在后面,等到内循环一次执行完毕后表示该数字就是现在的位置就是它按照从大到小的顺序的位置。
具体代码如下:
#include<stdio.h>
int main()
{
int a[101],n,m;
scanf("%d",&n);//输入n表示有n那个数需要进行排列
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);//将需要排列的数据存放在数组中
//冒泡排序的核心部分
for(int i=1;i<=n-1;i++)//外循环,n个数字只需要循环n-1次
{
for(int j=1;j<=n-i;j++)/*从第一位开始比较直到最后一个尚未归位的数*/
{
if(a[j]<a[j+1])//比较大小并交换
{
m=a[j];
a[j]=a[j+1];
a[j+1]=m;
}
}
}
for(int i=1;i<=n;i++)//输出结果
printf("%d ",a[i]);
return 0;
}