排序问题之冒泡排序法

排序问题之冒泡排序法,第1张

排序问题之冒泡排序

首先给大家介绍一下什么是冒泡排序法:

先假设我们这里要排的是升序,就是从小到大排序

这个算法的基本思想是:两两相邻的元素进行比较,如果前面的元素比后面的打,就将两个元素的位置交换,重复这一过程,知道所有的元素都排序号位置。

这个算法的实现有两个步骤:

第一步:一趟冒泡排序的实现,每一次都会把较大的值放到数组的最后面

第二步:有n个元素,就要实现n-1趟的排序。

现在假设有一个数组arr[10]={9,8,7,6,5,4,3,2,1}; 我们要对他进行排序

排序的过程就是这样的

 

 

 

 

 

 

 

代码如下:

#include
int main()
{
	int i = 0;
	int j = 0;
	int k = 0;
	int arr[10] = { 0 };
	for (i = 0; i < 10; i++)
	{
		scanf("%d", &arr[i]);
	}
	for (i = 0; i < 9; i++) //有n个元素,就要实现n-1趟排序
	{
		for (j = 0; j < 9 - i; j++) //一趟冒泡排序法的实现
			//没比较一趟,数组最后面的值就定好了,就少比较一次
		{
			//每一趟都把较大的值放到下面
			if (arr[j] > arr[j + 1])//两个相邻元素进行比较
			{
				k = arr[j];
				arr[j] = arr[j + 1];
				arr[j + 1] = k;
			}
		}
	}
	for (i = 0; i < 10; i++)
	{
		printf("%d", arr[i]);
	}
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5702727.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存