开源硬件
Arduino
客制化键盘
Arduino_寄存器
二进制运算
寄存器+二进制运算
LCD-逐字显示
密码依次录入
等待输入
WiFi Duck(无线击键注入攻击平台)
WiFi Duc-New
WiFi Duc-Old
蓝牙无线烧录
ESP8266
ESP-NOW
ESP8266看门狗
ESP8266-休眠模式
ESP01/01S使用说明
WIFI_SD
ESP8266-Web服务器
ESP8266-WIFI自动认证
ESP32
ESP32 ADC2
ESP32_PWM
ESP32_CAM
ESP32 小坦克
ESP32_限电保护
Arduino IDE 添加 ESP32
ESP32-iPhone BLE攻击
STM32
STM32F103-虚拟键盘
STC
STC8G1K08(A)
树莓派-触摸屏
Arduino IDE
Arduino_自制库
Arduino库收集
常见排序算法
冒泡排序
选择排序
插入排序
希尔排序
归并排序
快速排序
计数排序
预处理
millis(运行时长)
Arduino IDE 2.X-修改数据位置
Mixly
Mixly安装教程
Mixly 模块介绍
Mixly-添加ESP32CAM支持
Mixly-库定制工具
模块
4G模块连接物联网
GPS模块
语音模块(JQ8900)
安信可VB语音识别
28BYJ-48(5V步进)
FreeRTOS
FreeRTOS-多任务基础
FreeRTOS-任务共享全局变量
FreeRTOS-多核多任务
FreeRTOS-MUTEX
FreeRTOS-常规程序改多任务
FreeRTOS-定时器
LaserGRBL(激光雕刻)
LaserGRBL-GRBL
GRBL-CNC Shield v4
MicroPython
Scratch
Wokwi(在线仿真)
html转无符号数组
待做开源项目
本文档使用 MrDoc 发布
-
+
首页
冒泡排序
## 冒泡排序  冒泡排序,该排序的命名非常形象,即一个个将气泡冒出。冒泡排序一趟冒出一个最大(或最小)值。 **基本思想:** - 重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 **算法描述:** 1. 比较相邻的元素。如果第一个比第二个大,就交换它们两个 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数 3. 针对所有的元素重复以上的步骤,除了最后一个 4. 重复步骤1~3,直到排序完成 [wokwi_冒泡排序](https://wokwi.com/projects/332803782500942418)|[wokwi_冒泡排序](https://wokwi.com/projects/334326844712026708) ```c // 冒泡排序,BubbleSort(数组名,数组长度,[排序方向,默认小到大]) // 从左到右,相邻元素进行比较.每次比较一轮,就会找到序列中最大的一个或最小的一个.这个数就会从序列的最右边冒出来 void BubbleSort(int array[], int size,boolean forward = true){ // 第一层for循环主要是比较轮次,因为不用与自己比较,所以比较次数为 数组长度-1 for (int i = 0; i < size - 1; i++){ // 第二层for循环是进行实际比较,每轮过后得到的最大数或是最小数都会放到最后,所以循环次数为 数组长度-1-循环次数(用于排除已经排序过的数值) for (int j = 0; j < size - 1 - i; j++){ // 定义存储比较结果的变量 boolean compare; // 根据传入的第三个参数,来确定是正向排序(小到大)还是逆向排序(大到小) if (forward == true){ // 相邻的两个数(当前数和后一个数)进行比较 compare = array[j] > array[j + 1]; }else{ compare = array[j] < array[j + 1]; } // 顺序正确什么都不做,进行下一组比较;顺序错误改变两个数位置 if (compare){ // 暂存数,两个数直接相互赋值的中转站 int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } } ```
造物者W
2022年6月13日 13:25
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码