冒泡法排序的详细分解(一看就懂)

原创作品:如有不当,还请不吝赐教
冒泡排序:比较相邻俩个元素之间的大小,如果顺序错误,那么交换位置
(每一趟只能确定一个数的归位,也就是说第一趟确定末尾数字归位,第二趟确定倒数第二位归位,以此类推)

#include<stdio.h>
int main()
{
int n,i,t,p,j;
printf(“please input n:”);//输入数组元素的个数
scanf("%d",&n);
int a[100];
printf("\n");
printf(“please input a:”);
for(i=0;i<n;i++)//给数组元素赋值的方式为遍历数组
{
scanf("%d",&a[i]);//给元素赋值
}
for(i=0;i<n-1;i++)//
{
for(j=0;j<n-i-1;j++)//第一个元素开始开始比较,那么只需要比价n-1次(除去 本身) // 那么n-i的含义是什么呢?第二趟完成,第三趟第三个元素开始排序,由于前俩趟末尾后俩位数已经排好,所以它不需要和排过的后俩位比较,所以要-2,而-i也是这个道理
{
if(a[j]<a[j+1])
{
p=a[j];
a[j]=a[j+1];
a[j+1]=p;
}
}
}
printf(“result:”);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}

}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_42748120/article/details/84915761