冒泡排序讲解及代码分析
思路讲解:首先要明白冒泡排序的思维,先从键盘上对数组进行初始化,然后就是两个数交换,可以用for循环(这里就要先想好如何进行交换,比如让我们从小到大输出的算法可以借鉴),跳一步出来就应该要去想在每一次排序完成之后如何去输出这一次的排序的结果,在这里可以设置一个while以及一个变量来输出每一次结果。(如果有不懂的铁子可以在下面留言)
冒泡代码如下:
#include <stdio.h>
void main()
{
int a[6],i,t,b=1,j; /先将数组定义,一定要注意设置数组的大小将决定你输入的/
printf("input a number:");/大小决定输出的位数以及结果/
scanf("%d\n",&j);
for(i=0;i<j;i++)
{
scanf("%d",&a[i]);/再把数组初始化,达到从键盘输入的操作/
}
while(b<j)/设置j的变量是为了输出每一次的排序结果/
{
for(i=1;i<j+1;i++)
{
if(a[i]<a[i-1])
{
t=a[i-1];
a[i-1]=a[i];/如果前一位大于后一位,则进行交换;/
a[i]=t;
}
}
printf("第%d次排序结果为:",b);/显示输出排序的次数/
for(i=0;i<j;i++)
{
printf("%d",a[i]);/输出排序的结果/
printf(" ");
}
printf("\n");
b++;
}
}