C语言——冒泡排序法,数组

内容目录

方法介绍

例题和代码实现 

1.方法介绍

冒泡排序又称起泡法,它从头到尾每次都对相邻的两个数进行比较,将较大的那个数换到后一个元素中(当然也可以将最小数换到后面,这里仅以从小到大的排序为例)。每一轮比较都会找出最大数放在这些数后面。

如果比较N个数,则需要比较(N-1)轮。

第一轮比较(N-1)次,在N个数中找出最大数放在最后。                                                                 第二轮对剩下的(N-1)个数进行比较需要比较【(N-1)-1】次,将最大的数放入倒数第二个数组元素中。

............ 

以此类推,第(N-1)轮需要进行1次比较,将剩下的两个数,最大的放入第二个数组元素,最小的在第一个数组元素。

2.例题和代码实现

从键盘输入8个整数:1 4 6 -1 9 7 5 2 从小到大排序

#include 
int main()
{
	int i,j,t,a[8];
	printf("排序的数组:");
	for(i=0;i<8;i++)
	{
		scanf("%d",&a[i]);
	}
	printf("\n");
	for(i=0;i<7;i++)/*共需比较7轮,负责进行的轮数*/
	{
		for(j=0;j<7-i;j++)/*第i轮需要比较的次数:7-i*/ 
		{
			if(a[j]>a[j+1])
			{
				t=a[j];
				a[j]=a[j+1];  /*前一个元素比后一个元素大,就交换元素 */
				a[j+1]=t;
			}		
		}
	 } 
	 printf("排序后的数组:");
	 for(i=0;i<8;i++)
	 {
	 	printf("%3d",a[i]);/*3d是为了控制域宽,使输出的数组排列不那么紧凑,3可以不加*/ 
	 }
	 return 0;
 } 

C语言——冒泡排序法,数组_第1张图片

 

冒泡排序比较简单,其实现原理就像水中冒泡,越到水面水泡越小。后续还会发一些关于C语言的题型,方法等,有意愿学习,交流的,可以关注,收藏。

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