排序

简介: 排序

冒泡排序:

冒泡排序动态演示:冒泡排序演示(打开后点击图上面的Bubble Sort即可观看)

如动态图中看到的,冒泡排序(Bubble Sort)就是让大的元素往下(后)沉。


从第一个元素开始,用第一个和第二个元素比较。如果它比第二个大,就交换位置(让大的往下沉)。接着用第二个和第三个比较,重复上述过程。一直到倒数第二个和倒数第一个比较完成时,第一轮排序结束,最下面的就是最大的元素。

然后开始第二轮,由于最下面已经是最大的了,这次只要排到倒数第二个就可以了。


假设数组长度为len,即数组有len个元素。

因此一共要 len-1 轮排序。(len-1个元素已经沉下去了,剩下的一个自然就是最小的,不必再排)

而每一轮需要比较的次数是len -i - 1,(第i轮时,已经有i个元素沉下去了(i是从0开始,所以i=1时已经完成1轮了),剩下的元素是len-i,比较的次数就是len- i - 1。)

void BubbleSort(int array[], int len)
{
  for (int i = 0; i < len -1; ++i)  //最外层的大循环,一共要进行len-1轮
  {
    for (int j = 0; j < len - i-1; ++j)//每一轮的小循环,每轮比较len-i-1次
      if (array[j] > array[j + 1])
        swap(array[j], array[j + 1]); //自定义swap函数,用于交换两个数
  }
}
相关文章
|
算法 搜索推荐 调度
排序的介绍
排序的介绍
|
7月前
|
搜索推荐 算法
|
算法 搜索推荐
排序篇(六)----排序小结
排序篇(六)----排序小结
46 0
|
算法 搜索推荐
排序(详解)中
排序(详解)
73 0
|
算法
排序(详解)下
排序(详解)
71 0
|
算法 搜索推荐
排序(详解)上
排序(详解)
72 0