思想: 通过不断比较相邻元素大小,进行交换来实现排序。
第一趟排序:
首先将第一个元素与第二个元素比较大小,若为逆序,则交换;
然后比较第二个元素与第三个元素的大小,若为逆序,则交换;
直至比较第n-1个元素与第n个元素的大小,若为逆序,则交换;
结果:
关键字最大的记录被交换至最后一个元素位置上。
•优点:
每趟结束时,不仅能挤出一个最大值到最后面位置(或者最小值到最前面位置)冒泡排序算法的时间复杂度为O(n2)。由于其中的元素移动较多,所以属于内排序中速度较慢的一种。
冒泡排序算法只进行元素间的顺序移动,所以是一个稳定的算法。
void BubbleSort(int Array[],int n){
//bool noswap;
for (int i=0;i<n-1;i++)
{
//noswap=true;
for(int j=n-1;j>i;j--)
if (Array[j]<Array[j-1])
{
int temp=Array[j];
Array[j]=Array[j-1];
Array[j-1]=temp;
//noswap=false;
}
//if (noswap)
//return;
}
}