冒泡排序

1、基本概念

这里使用C++来实现冒泡排序法

冒泡排序法采用不停地交换彼此位置来实现,故而形象地称之为冒泡

冒泡排序主要是由两层循环组成(这里记下来的原因就是两层循环的停止条件,自己编写出了错误)。

1、外层循环:主要是用来轮询;

2、内层循环:主要用来交换位置(前提是满足if条件)

3、外层循环的条件i  < n - 1,内存循环的停止条件为j < n-i-1;

2、代码实现

 1 void BubbleSort(int arr[], int n)
 2 {
 3     for (int i = 0; i < n - 1; i++)
 4     {
 5             for (int j = 0; j < n - i - 1; j++)
 6             {
 7                     if (arr[j] > arr[j + 1]) 
 8             {
 9                             int temp = arr[j];
10                             arr[j] = arr[j + 1];
11                             arr[j + 1] = temp;
12                         }
13                  }
14          }
15 }

首先,冒泡排序是比较排序,比较次数需要n-1次,因此,外部循环条件为i < n -1;同时由于arr[j+1],不使用n-1的话,arr[j+1]就会发生越界行为(超出了数组最大数组下标);

接着,再看为什么需要减掉i呢?因为内层循环每完成一次,最大那个值(或最小那个值),就已经交换到了最后的位置,所以下次交换的时候我们就要减少一次交换已经排序好的元素,依次类推。

 

posted @ 2024-04-01 17:19  taohuaxiaochunfeng  阅读(12)  评论(0编辑  收藏  举报