冒泡法排序

冒泡排序算法的运作如下:(从后往前)
  1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
代码如下:
//	起泡法排序:
//	n个元素,比较n-1趟;
//	第j趟比较n-j次;

#include
#include

int main()
{
	int a[10] = {144,24,43,35,67,78,27,11,3,2}; //n个元素(n=10)
	int i;
	int j;
	int temp;
	
	for(j=0;j<9;++j)       //比较n-1趟(10-1=9)
	{
		for(i=0;i<9-j;++i) //第j趟比较n-j次(因为趟数从0开始所以还要-1)
		{
			if(a[i] > a[i+1])
			{
				temp = a[i];
				a[i] = a[i+1];
				a[i+1] = temp;
			}
		}
	}

	printf("升序排列:\n");
	for(i=0;i<10;i++)
	{
		printf("%d\n",a[i]);
	}
	
	for(j=0;j<9;++j)       //比较n-1趟(10-1=9)
	{
		for(i=0;i<9-j;++i) //第j趟比较n-j次(因为趟数从0开始所以还要-1)
		{
			if(a[i] < a[i+1])
			{
				temp = a[i];
				a[i] = a[i+1];
				a[i+1] = temp;
			}
		}
	}

	printf("降序排列:\n");
	for(i=0;i<10;i++)
	{
		printf("%d\n",a[i]);
	}

	system("pause");
	return 0;
}

冒泡法排序_第1张图片

你可能感兴趣的:(c语言,排序算法)