真假冒泡排序

以前学的冒泡排序写成了简单选择排序的变种,而且效率还更低。。。如下:
/*
 * selection sort
 */
void FakeBubbleSort()
{
	int a[10] = {6,4,8,2,5,9,7,1,0,3};
	for (int i=0;i<9;i++)
	{
		for (int j=i+1;j<10;j++)
		{
			if (a[i] > a[j])
			{
				swap(a[i], a[j]);
			}
		}
	}
	copy(a, a+10, ostream_iterator<int>(cout, " "));
	cout<<endl;
}
学习了一下真正的冒泡排序,纠正了多年来的错误。。。如下:
/*
 * bubble sort
 */
void RealBubbleSort()
{
	int a[10] = {6,4,8,2,5,9,7,1,0,3};
	for (int i=0;i<9;i++)
	{
		for (int j=0;j<9-i;j++)
		{
			if (a[j] > a[j+1])
			{
				swap(a[j], a[j+1]);
			}
		}
	}
	copy(a, a+10, ostream_iterator<int>(cout, " "));
	cout<<endl;
}

你可能感兴趣的:(真假冒泡排序)