冒泡排序
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呢?因为内层循环每完成一次,最大那个值(或最小那个值),就已经交换到了最后的位置,所以下次交换的时候我们就要减少一次交换已经排序好的元素,依次类推。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律