当前位置: 首页 > news >正文

排序算法之二:冒泡排序

冒泡排序的思路

冒泡排序是交换排序

基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。

  • 第一趟:将最大的值排到最后
  • 第二趟:将次大的值排到倒二
  • ......
  • 第n-1趟:将最小的排到第一

冒泡排序动图:https://pic4.zhimg.com/v2-33a947c71ad62b254cab62e5364d2813_b.webp

由于冒泡排序的时候,大的沉地,小的浮上来,所以得名冒泡排序

冒泡排序的特性

  1. 冒泡排序是一种非常容易理解的排序
  2. 时间复杂度:O(N^2)
  3. 空间复杂度:O(1)
  4. 稳定性:稳定

代码示例

void Swap(int* p1, int* p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}
void BubbleSort(int* a, int n)
{for (int i = 0; i < n; i++){for (int j = 1; j < n - i; j++){if (a[j - 1] > a[j])Swap(&a[j - 1], &a[j]);}}/*for (int i = 0; i < n; i++){for (int j = 0; j < n - 1 - i; j++){if (a[j] > a[j+1])Swap(&a[j], &a[j+1]);}}*/
}
http://www.lryc.cn/news/254322.html

相关文章:

  • 一键搭建你的hnust请假条
  • C练习题13
  • 交易历史记录20231206 记录
  • 1-5总体分布的推断
  • 深信服技术认证“SCSA-S”划重点:XSS漏洞
  • MIT6S081-Lab2总结
  • CMMI5大成熟度等级和4大过程域
  • c++新经典模板与泛型编程:const修饰符的移除与增加
  • AUTOSAR汽车电子嵌入式编程精讲300篇-基于加密算法的车载CAN总线安全通信
  • 4-Docker命令之docker start
  • AWS Remote Control ( Wi-Fi ) on i.MX RT1060 EVK - 2 “架构 AWS”
  • 日志框架梳理(Log4j,Reload4j,JUL,JCL,SLF4J,Logback,Log4j2)
  • 内核无锁队列kfifo
  • 18、XSS——cookie安全
  • 从零开发短视频电商 Jmeter压测示例模板详解(无认证场景)
  • C++可以函数重载而C不可以的原因
  • Spark常见算子汇总
  • 【华为数据之道学习笔记】3-1 基于数据特性的分类管理框架
  • 电脑版便签软件怎么设置在桌面上显示?
  • 【华为数据之道学习笔记】2-建立企业级数据综合治理体系
  • 【IC前端虚拟项目】git和svn项目托管平台的简单使用说明
  • C++ IO库
  • Springboot 项目关于版本升级到 3.x ,JDK升级到17的相关问题
  • QGraphicsView实现简易地图7『异步加载-多瓦片-无底图』
  • Spring Boot学习(三十三):集成kafka
  • MOSFET
  • DriveWorks——参数化设计非标定制利器
  • DevEco Studio集成ArkUI-X
  • 网络视频服务器的作用是什么?
  • 解决vue3使用iconpark控制台预警提示问题