冒泡排序
冒泡排序的思想
若是按从大到小排序:两两对比,把较大的数放在后边,依次往下进行比较,发现一轮比较下来,最大的数已经排在了最后一位,那么二轮只需要比较最后一位前边的几位即可……
第一种写法
下面展示代码和输出结果。
// 输出结果
12,28,24,34,36,
Press any key to continue
#include<stdio.h>
int main()
{ //冒泡排序
int a[5]={12,34,24,36,18};
for(int i=0;i<4;++i)
{
if(a[i]>a[i+1])
{
int b;
b=a[i];
a[i]=a[i+1];
a[i+1]=b;
}
}
for(i=0;i<3;++i)
{
if(a[i]>a[i+1])
{
int b;
b=a[i];
a[i]=a[i+1];
a[i+1]=b;
}
}
for(i=0;i<2;++i)
{
if(a[i]>a[i+1])
{
int b;
b=a[i];
a[i]=a[i+1];
a[i+1]=b;
}
}
for(i=0;i<1;++i)
{
if(a[i]>a[i+1])
{
int b;
b=a[i];
a[i]=a[i+1];
a[i+1]=b;
}
}
for(int j=0;j<5;++j)
{
printf("%d,",a[j]);
}
putchar('\n');
return 0;
}
输出结果:
//输出
22,44,55,66,77,88,99,
Press any key to continue
#include<stdio.h>
int main()
{
int leng=7;
int a[7]={99,66,88,44,22,77,55};
for(int i=0;i<leng-1;++i)
{
for(int j=0;j<leng-1-i;j++)
{
if(a[j]>a[j+1])
{
int b;
b=a[j];
a[j]=a[j+1];
a[j+1]=b;
}
}
}
for(int k=0;k<7;++k)
printf("%d,",a[k]);
putchar('\n');
return 0;
}