十大排序-冒泡排序

冒泡排序属于交换排序
从前往后(从后往前)两两比较交换,第一趟可以将最小的元素交换到待排序的第一个位置(或将最大的元素交换到待排序的最后一个位置).
下一趟排序之前排好序的元素就不用再参与比较了.
最坏情况下时间复杂度是O(\(n^2\)),最好的情况是o(n),平均时间复杂度是O(\(n^2\)).
空间复杂度是O(1)

void bubbleSort(vector<int> &a)
{
	for(int i = a.size() -1 ; i > 0 ; i--)
	{
		bool flag = false;
		for(int j = 0 ; j + 1 <= i ; j++)
		{
			if(a[j] > a[j+1])
			{
				flag = true;
	                        int tmp = a[j];
				a[j] = a[j+1];
				a[j+1] = tmp;
			}
		}
		if(!flag)
			break;
	}
} 
posted @ 2020-07-20 18:33  Akmf's_blog  阅读(109)  评论(0)    收藏  举报