C++实现“冒泡排序”

  • Post author:
  • Post category:其他


对于我们这些C++初学者来说,最容易遇到的排序算法就是冒泡排序了。

这篇文章会为小白们讲清楚冒泡排序的思路以及代码。

思路

冒泡排序,顾名思义,就是像气泡水里面的气泡一样,不断与水交换,最终浮上最顶端。

冒泡排序就是通过遍历的方法将大或小的数不断与其他数交换,达到升序或降序的效果。

划重点:


从第一个元素开始,当第i个元素小于/大于第i+1个元素时,将它们的位置交换,直到没有元素可以交换时停止排序。

习题

对{ 4,2,8,0,5,7,1,3,9 }进行升序排序。

输出样例:

0 1 2 3 4 5 7 8 9

先来看思路:

我们可以使用for循环,如果第i个元素大于第i+1元素,将第i个元素与第i+1个元素进行交换。

那么循环的次数是多少呢?

非常明了,9+8+7+6+5+4+3+2+1次。

但是最后一次是没必要的,所以我们需要在此基础上减去1。

上代码:

#include<iostream>
using namespace std;
int main()
{
	int arr[9]{4,2,8,0,5,7,1,3,9};
	for(int i=1;i<=(9-1);i++)//9-1意为最后一次没有必要 
		for(int j=1;j<=(9-1)-i;j++) 
			if(arr[j-1]>arr[j])
			{
				int temp=arr[j];
				arr[j]=arr[j-1];
				arr[j-1]=temp;
			}
	for(int i=0;i<9;i++)
		cout<<arr[i]<<" ";
	return 0;
}

如果你搞明白了冒泡排序的算法的话,记得要点个订阅再走哟!



版权声明:本文为yanxinchenji原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。