排序--2--C++--冒泡排序

排序--2--C++--冒泡排序


冒泡排序:它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。(来自百度)

冒泡排序是稳定排序,因为一样的数字相邻比对后,没有换位置。

时间复杂度:O(n²)

冒泡排序效果图:第一次排序经过相邻的两个数字替换后,能确定最后一个数字,第二次就可以确定倒数第二个,依次类推。

代码如下:i代表总共循环size次,j代表每一轮比对的数。

#include <string>
#include <iostream>
using namespace std;

void maopao_sort(vector<int>& vector1, int size)
{
	for (int i = 0; i < size; i++)
	{
		for (int j = 0; j < size - i-1;j++)
		{
			if (vector1[j] > vector1[j + 1])
			{
				swap(vector1[j], vector1[j + 1]);
			}
		}
	}
}
int main()
{
	
	vector<int> vector1;
	int num;
	int size = 5;
	for (int i = 0; i < size;i++)
	{    cin  >> num;
		vector1.push_back(num);
	}
	maopao_sort(vector1, size);
	for (int i = 0; i < size;i++)
	{
		cout << vector1[i] << " ";
	}
	cout << endl;
	return 0;
}

结果图:

猜你喜欢

转载自blog.csdn.net/qq_41103495/article/details/108835388
今日推荐