冒泡排序–改进

  • Post author:
  • Post category:其他
#include <stdio.h>
void bubble_sort(int a[],int n)
{
	int i,j.tmp;
	int exchange=0,last_exchange;//这里的exchange表示是否发生交换,如果始终未发生交换,那么认为已经是有序的序列了,不在需要排序,直接跳出;last_exchange表示最后一个发生交换的位置,可以使得有序序列扩充多个;
	last_exchange=1;
	for(i=1;i<n;i++)
	{
		for(j=n-1;j>=i;j--)
		{
			if(a[j]<a[j-1])
			{
				tmp=a[j-1];
				a[j-1]=a[j];
				a[j]=tmp;
				exchange=1;
				last_exchange=j;
			}
		}
		i=last_exchange;
		if(0==exchange)
			break;				
	}
}


版权声明:本文为j695251824原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。