冒泡排序(排序算法)

1.冒泡排序可以将杂乱无章的数列排序整齐;

比如给定数组{5,2,1,4,3,6,7,8,9,10}经过冒泡排序可变成

{1,2,3,4,5,6,7,8,9,10};

2.算法原理

比较相邻元素,如果第一个比第二个大,就交换这两个元素,然后大的元素和后面元素比较,同理,如果比后面的大就交换这两个,直到最大的元素放在最后的位置上,完成一次冒泡排序,十个数据作比较的话,及第一个数字要和其他九个作比较,需要九次,第二个数字比较的话,就不需要和已经在结尾的最大数比较了10-1-1=8,只需要比较八次,一趟冒泡排序会把大的数放在后面,10个元素最多需要九趟。

3.代码展示

int main()
{
	int  arr[10] = {10,9,8,7,6,5,4,3,2,1};
	int sz = sizeof(arr) / sizeof(arr[0]);//数组长度
	int i;
	for (i = 0; i < sz - 1; i++)//趟数
	{
		int j = 0;
		for (j = 0; j < sz - 1 - i; j++)//比较次数
		{
			if (arr[j] > arr[j + 1])//前面大于后面,交换
			{
				int tmp = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = tmp;
			}
		}
    }
	for (i = 0; i < sz; i++)//打印数组
	{
		printf("%d ", arr[i]);
	}
}

3.运行展示

猜你喜欢

转载自blog.csdn.net/yyqzjw/article/details/131909947