冒泡排序(C语言)

排序步骤(从小到大):

比较相邻的两个数,如果第一个比第二个大,则交换两个数字,每一轮比较都会将较大的数字排到后面。

图示(图源菜鸟教程):

C语言实现:

# include<stdio.h>
int main(void)
{
	int arr[10]={5,4,7,9,2,3,1,6,10,8};		//定义一个位排序的数组 
	
	int i;	//定义循环次数 
	int n = 0;	//定义排序次数 
	int length=10;	//定义数组长度 
	while(n < length) 	//控制比较次数 
	{
		for(i = 0 ; i < length-1-n ; i++)
		{
			int tmp = 0;	//交换顺序时临时存放数字 
			if(arr[i] > arr[i+1])	//比较两个数字时,如果前一个数字大于后一个数字则交换位置 
			{
				tmp = arr[i];		//交换两个数字的顺序 
				arr[i] = arr[i+1];
				arr[i+1] = tmp;
			}
		}
		n++;	//控制比较次数 
	}
	
	for(i = 0 ; i < length ; i++)	//打印排序后的数组 
	{
		printf("%d ",arr[i]);
	}
	return 0;
}

输出:

排序后:1 2 3 4 5 6 7 8 9 10
原文地址:https://www.cnblogs.com/Timesi/p/11638236.html