冒泡排序

来源:互联网 发布:拓扑图坐标算法 编辑:程序博客网 时间:2024/05/20 18:52

思想:  通过不断比较相邻元素大小,进行交换来实现排序。

第一趟排序:

首先将第一个元素与第二个元素比较大小,若为逆序,则交换;

然后比较第二个元素与第三个元素的大小,若为逆序,则交换;

直至比较第n-1个元素与第n个元素的大小,若为逆序,则交换;

结果:

关键字最大的记录被交换至最后一个元素位置上。

优点
  每趟结束时,不仅能挤出一个最大值到最后面位置(或者最小值到最前面位置)

冒泡排序算法的时间复杂度为On2)。由于其中的元素移动较多,所以属于内排序中速度较慢的一种。

冒泡排序算法只进行元素间的顺序移动,所以是一个稳定的算法。

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;}}