冒泡排序
算法:
void BubbleSort(int a[], int len)
{
int i, j, temp;
for (j = 0; j < len - 1; j++)
{
for (i = 0; i < len - 1 - j; i++)
if (a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
例题1
输入四个整数,将四个整数从小到大排列
代码
#include<stdio.h>
int main()
{
int a[4];
for(int i=0;i<4;i++)
scanf("%d",&a[i]);
for(int j=0;j<3;j++) //冒泡排序
for(int k=0;k<3-j;k++)
{
int t;
if(a[k]>a[k+1]) //如果前一个比后一个大就交换
{
t=a[k]; //三变量交换法
a[k]=a[k+1];
a[k+1]=t;
}
}
for(int i=0;i<4;i++)
printf("%d ",a[i]);
return 0;
}
例题2
输入十个整数,从大到小排列
代码
#include<stdio.h>
int main()
{
int a[10];
for(int i=0;i<10;i++)
scanf("%d",&a[i]);
for(int j=0;j<9;j++)
for(int k=0;k<9-j;k++)
{
int t;
if(a[k]<a[k+1])
{
t=a[k];
a[k]=a[k+1];
a[k+1]=t;
}
}
for(int i=0;i<10;i++)
printf("%d ",a[i]);
return 0;
}