冒泡排序法

386 阅读1分钟

1.冒泡求最大值

#include <stdio.h>

int main()
{
	int a[10];
	int i, j, t;
	printf("input 10 numbers :\n");
	for (i=0; i<10; i++)
	{
		scanf("%d", &a[i]);
	}	
	printf("\n");
	for(j=0; j<9; j++)	//进行9次循环,实现9趟比较
	{		
		for(i=0; i<9-j; i++)  //在每一趟中进行9-j次比较
		{		
			if(a[i] > a[i+1])		//相邻两个数比较 
				{t=a[i]; a[i]=a[i+1]; a[i+1]=t;}
		}
	}
	 printf("the sorted numbers :\n");
	 for(i=0; i<10; i++)
{
		printf("%d ", a[i]);
}
	printf("\n");
	return 0;
}

2.冒泡求最小值

分析:

   拿第1个数(2,3,......)分别与剩下的数进行比较,

   比较出最小的数放到第1(2,3,........)个数组a(0)(1,2,.......)中。
#include <stdio.h>

void main()
{		
int a[10];
int i, j, t;
printf("please enter 10 numbers:");
for(i = 0; i < 10; i++)
{
	   scanf("%d", &a[i]);
	   printf("\n");
}
	   for(i = 0; i<=8; i++)
	   {
		   for(j = i+1; j<=9; j++)
		   {
			   if(a[i]>a[j]) 
			   {
				   t = a[i]; a[i] = a[j]; a[j] = t;
			   } 
		   }
	   }
	   for(i = 0; i<10; i++)
	   {
		   printf("%d\n", a[i]);
	   }

}