C语言常用排序算法之冒泡排序
冒泡排序算法
#include<stdio.h>
#define SIZE 10
void BubbleSort(int *a,int len)
{
int i,j,k,temp;
for(i=0;i<len-1;i++)
{
for(j=0;j<len-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
printf("第%d步的排序结果",i+1);
for(k=0;k<len;k++)
{
printf("%d ",a[k]);
}
printf("\n");
}
}
int main()
{
int i;
int b[SIZE];
for(i=0;i<SIZE;i++){
scanf("%d",&b[i]);
}
BubbleSort(b,SIZE);
printf("排序后的数组:\n");
for(i=0;i<SIZE;i++){
printf("%d ",b[i]);
}
printf("\n");
改进的冒泡排序
#include<stdio.h>
#define SIZE 10
void BubbleSort(int *a,int len)
{
int i,j,k,temp;
int flag=1;
for(i=0;flag==1;i++)
{
for(j=0;j<len-1-i;j++)
{
flag=0;
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1;
}
}
}
}
int main()
{
int i;
int b[SIZE];
for(i=0;i<SIZE;i++){
scanf("%d",&b[i]);
}
BubbleSort(b,SIZE);
printf("排序后的数组:\n");
for(i=0;i<SIZE;i++){
printf("%d ",b[i]);
}
printf("\n");
return 0;