冒泡排序是拿一个与另一个数比较,例如1 2 3 4 5 ,拿出1与2比较,在与3,与4,与5;之后再拿出2与1,与3,与4,与5比较,以此类推,按需要的顺序交换
#include <stdio.h>
void main()
{
int a[40],i,j,n,temp;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);//输入基础数据
}
for(i=0;i<n;i++)//外层循环,有n个数,每个数都有拿出来比较
{
for(j=0;j<n-i-1;j++)//内层循环,拿出来的数,与剩下的数进行两两比较,比较完之后,就不会再用这个数了,所以要减去
{
if(a[j]<a[j+1])//比较交换 (降序)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<n;i++)//打印
{
printf("%d ",a[i]);
}
}
冒泡排序是一种简单的排序算法,通过不断比较相邻元素并交换位置,逐步将较大的元素推向序列末尾,直到整个序列有序。它重复地遍历待排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
47万+

被折叠的 条评论
为什么被折叠?



