#include<stdio.h>
#include<time.h>
void bubbleSort1(int a[],int length);
void bubbleSort2(int a[],int length);
void main()
{
float start=0,finish=0;
int a[10]={10,15,4,2,5,3,6,9,7,1};
printf("普通冒泡排序\n");
bubbleSort1(a,10);
printf("有监视哨的冒泡排序\n");
bubbleSort2(a,10);
}
void bubbleSort1(int a[],int length)
{
int i,j,temp;
for(i=0;i<length-1;i++)
for(j=0;j<length-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
for(i=0;i<length;i++)
printf("%d ",a[i]);
printf("\n");
}
void bubbleSort2(int a[],int length)
{
int i,j,temp,flag=1;
for(i=0;i<length-1&&flag==1;i++)
{
flag=0;
for(j=0;j<length-i-1;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=1; //当flag=1,表示还需排序,当flag=0时,表示排序已完成,不需再扫描数组,退出循环。
}
}
}
for(i=0;i<length;i++)
printf("%d ",a[i]);
printf("\n");
}