C语言冒泡排序函数

C语言 冒泡排序算法

冒泡排序算法的原理如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

/*冒泡排序*/

#include 
#define MAX 5    
#define FUHAO >  // > 升序(从小到大)   < 降序(从大到小)

void mpao(int* a, int n)
{
 	int i, j, temp;
 	for (i = 0; i < n - 1; i++)
 	{
  		for (j = 0; j < n - 1 - i; j++)
 		{
  			 if (a[j] FUHAO a[j + 1])
 			 {
   			 	temp = a[j]; 
   			 	a[j] = a[j + 1]; 
   			 	a[j + 1] = temp;
   			 }
 		}
	}
}

int main()
{
 	int a[MAX] = { 0 };
 	int n = sizeof(a) / sizeof(int), i;
	for (i = 0; i < n; i++)
  		scanf("%d", &a[i]);
 	mpao(a, n);
 	for (i = 0; i < n; i++)
  		printf("%d ", a[i]);
 	return 0;
}

你可能感兴趣的:(C语言,算法)