冒泡排序又称起泡排序,是另一种非常简单的排序方法,冒泡排序的基本思想
待排序的记录:(R1,R2,R3,....Rn)
从R1开始,依次比较相邻的两个记录,若后面的记录小于前面的记录,则交换两者之间的位置。进行一趟比较后,最大的记录将会跑到最后去。这样比较n-1趟后,排序完成
代码如下:
void sort(int a[],int n)
{
int change=1;
for(int i=1;i<n && change;i++)
{
change=0
for(int j=0;j<n-i;j++)
{
//从第一个记录开始,与相邻的记录比较
if(a[j]>a[j+1])
{
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
change=1;
}
}
}
}
void main()
{
int a[6]={1,3,2,6,3,2};
sort(a,6);
for (int i=0;i<6;i++)
{
printf("%d\n",a[i]);
}
}
该算法中,我们引入了一个change变量,先将其置0,若在排序的过程中,进行理论交换,则置1,各趟比较开始前,检查change,如果等于0,表面未曾发生交换,可以退出程序。