冒泡法排序原理

冒泡排序法的基本思想是:

第一:在a[0]到a[N-1]的范围内,依次比较两个相邻元素的值,

若a[J]>a[J+1],则交换a[J]与a[J+1],J的值取0,1,2,……,N-2;经过
这样一趟冒泡,就把这N个数中最大的数放到a[N-1]中.

第二:再对a[0]到a[N-2]的范围内再进行一趟冒泡,又将该范围内的最大值换到了a[N-2]中.  

第三:依次进行下去,最多只要进行N-1趟冒泡,就可完成排序.

第四:如果在某趟冒泡过程中没有交换相邻的值,则说明排序已完成,可以提前结束处理.


例1:用冒泡排序法对8个整数{6,8,5,4,6,9,3,2}进行从小到大排序.

#include <stdio.h>

int main(void)
{
	int i,j,t,a[8];

	printf("Please input 8 numbers:\n");
	for(i= 0;i<8;i++)
		scanf("%d",&a[i]);

	for(i= 0;i<8;i++)
		for(j= 0;j<8-i-1;j++)
			if(a[j]<a[j+1])
			{
				t= a[j];
				a[j]= a[j+1];
				a[j+1]= t;
			}
	for(i= 0;i<8;i++)
		printf("%d",a[i]);
	return 0;			
}




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