冒泡排序--附图解以及代码
冒泡排序Bubble Sort详解1. 什么是冒泡排序冒泡排序是一种基于比较的交换排序算法。它的核心思想是重复遍历待排序序列依次比较相邻的两个元素若顺序错误逆序则交换直到没有逆序对为止。每一轮遍历都会将当前未排序部分中的最大或最小元素“冒泡”到序列的末端如同气泡从水底浮起因此得名。2. 算法步骤以升序为例从数组第一个元素开始依次比较相邻元素arr[i]和arr[i1]。若arr[i] arr[i1]则交换两者位置。继续向后比较直到数组末尾。此时整个序列的最大值已被交换到最后一位。忽略已排好的最后一个元素对剩余的前n-1个元素重复上述过程。每一轮结束后未排序部分的最大值都会“冒泡”到正确位置。重复n-1轮或直到某一轮未发生任何交换排序结束。3. 动态演示4. 算法复杂度与稳定性特性值最好时间复杂度O(n) —— 数组已有序优化版最坏时间复杂度O(n²) —— 数组完全逆序平均时间复杂度O(n²)空间复杂度O(1) —— 原地排序无需额外数组稳定性稳定—— 相等元素的相对顺序不变5. 优缺点优点算法逻辑简单易于理解和实现。稳定排序适合对稳定性有要求的场景。原地排序内存占用极低。经过优化后对近乎有序的数组效率很高O(n)。缺点平均和最坏时间复杂度均为 O(n²)处理大规模数据时效率低下。实际工程中几乎不被采用仅作为教学或小规模数据排序。6. 示例代码#includestdio.h#includestdbool.h// 优化版冒泡排序voidbubbleSort(intarr[],intn){for(inti0;in-1;i){bool flagfalse;for(intj0;jn-1-i;j){if(arr[j]arr[j1]){inttemparr[j];arr[j]arr[j1];arr[j1]temp;flagtrue;}}if(!flag)break;}}intmain(){intarr[]{5,8,6,3,9,2,1,7};intnsizeof(arr)/sizeof(arr[0]);bubbleSort(arr,n);for(inti0;in;i)printf(%d ,arr[i]);// 输出123456789return0;}

相关新闻

大数据用户画像系统架构与核心技术解析

大数据用户画像系统架构与核心技术解析

1. 项目背景与核心价值 大数据时代的用户画像分析已经成为企业精准营销、产品优化的核心工具。这个毕设项目选择"基于大数据的用户画像分析系统"作为课题,正是抓住了当前数字化转型中最关键的技术需求点。我在实际电商平台用户分析项目中深刻体会到&#…

2026/10/10 15:14:57 阅读更多 →
大模型RAG优化17种实战策略解析

大模型RAG优化17种实战策略解析

1. 大模型RAG优化完全指南:为什么需要17种策略?RAG(Retrieval-Augmented Generation)技术已经成为当前大模型应用的核心范式之一。简单来说,它通过将传统的信息检索(Retrieval)与生成式大模型&a…

2026/9/29 5:01:36 阅读更多 →
Python连接达梦数据库DM8:从驱动选型到生产部署的实战指南

Python连接达梦数据库DM8:从驱动选型到生产部署的实战指南

1. 项目概述:为什么Python开发者需要关注达梦数据库?最近在几个企业级项目的技术选型会上,达梦数据库(DM8)被提及的频率越来越高。作为一个在数据领域摸爬滚打了十多年的老码农,我最初对它的印象还停留在“…

2026/10/9 22:54:21 阅读更多 →

最新新闻

Kiln 侧边栏弧形过渡动画实现:用嵌套元素与双轴 Easing 打造 macOS 风格展开/折叠

Kiln 侧边栏弧形过渡动画实现:用嵌套元素与双轴 Easing 打造 macOS 风格展开/折叠

人工智能AI 应用AI 评测RAG微调提示工程开发工具桌面应用 【免费下载链接】Kiln Build, Evaluate, and Optimize AI Systems. Includes evals, RAG, agents, fine-tuning, synthetic data generation, dataset management, MCP, and more. 项目地址: https://gitcod…

2026/10/13 2:57:40 阅读更多 →
peon-ping 的 oh-my-pi(omp)适配器:ExtensionAPI 事件桥接 peon.sh 的完整实现解析

peon-ping 的 oh-my-pi(omp)适配器:ExtensionAPI 事件桥接 peon.sh 的完整实现解析

【免费下载链接】peon-ping Warcraft III Peon voice notifications ( more!) for Claude Code, Codex, IDEs, and any AI agent. Stop babysitting your terminal. Employ a Peon today. 项目地址: https://gitcode.com/gh_mirrors/pe/peon-ping 点击查看 免费下载…

2026/10/13 2:57:40 阅读更多 →
Devtron 中 go-restful v3 依赖深度解读:从 CHANGES.md 看版本演进、关键行为变更与升级陷阱

Devtron 中 go-restful v3 依赖深度解读:从 CHANGES.md 看版本演进、关键行为变更与升级陷阱

云原生DevOps运维 【免费下载链接】devtron The only Kubernetes dashboard you need 项目地址: https://gitcode.com/gh_mirrors/dev/devtron 点击查看 免费下载 本文以 Devtron 仓库 vendor 目录中的 go-restful 变更历史 为核心,完整梳理 go-restful…

2026/10/13 2:57:40 阅读更多 →
Decepticon 实战剖析:XBEN-104-24 Loan Calculator 的默认凭据 + Jinja SSTI 攻击链与 Benchmark 证据解读

Decepticon 实战剖析:XBEN-104-24 Loan Calculator 的默认凭据 + Jinja SSTI 攻击链与 Benchmark 证据解读

【免费下载链接】Decepticon Autonomous Hacking Agent for Red Team 项目地址: https://gitcode.com/gh_mirrors/de/Decepticon 点击查看 免费下载 本文以 Decepticon 开源仓库中 XBEN-104-24 运行证据卡 为核心,逐字段拆解一次真实 benchmark 挑战的完…

2026/10/13 2:57:40 阅读更多 →
PDF补丁丁:免费开源的PDF工具箱,书签编辑、页面旋转与文档合并一次完成

PDF补丁丁:免费开源的PDF工具箱,书签编辑、页面旋转与文档合并一次完成

PDF补丁丁:免费开源的PDF工具箱,书签编辑、页面旋转与文档合并一次完成 【免费下载链接】PDFPatcher PDF补丁丁——PDF工具箱,可以编辑书签、剪裁旋转页面、解除限制、提取或合并文档,探查文档结构,提取图片、转成图片…

2026/10/13 2:57:40 阅读更多 →
Mathesar 0.5.0 版本详解:表单构建器、记录查看体验与安装流程的全面升级

Mathesar 0.5.0 版本详解:表单构建器、记录查看体验与安装流程的全面升级

数据库后端前端协作 【免费下载链接】mathesar An intuitive spreadsheet-like interface that lets users of all technical skill levels view, edit, query, and collaborate on Postgres data directly. 100% open source and self hosted, with native Postgres access co…

2026/10/13 2:56:40 阅读更多 →

日新闻

物联网系统集成避坑指南:从选型到验收的关键要点

物联网系统集成避坑指南:从选型到验收的关键要点

做了这么多年物联网系统集成的项目,我最大的感受是,大部分坑不是出在技术前沿,而是出在一些看起来很平常的地方。设备选了便宜的、协议没问清楚、现场没摸透、验收标准写得含糊——这些细枝末节,最后都会变成延期、超支和扯皮的大…

2026/10/13 0:00:57 阅读更多 →
ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

ESP32舵机控制全攻略:从PWM原理到高级玩法与常见故障排查

如果你玩ESP32有一阵子了,很难不碰到舵机控制这道坎。做智能小车要转方向,做机械臂要抬关节,做云台要偏航俯仰,背后都是同一个东西在干活:舵机。而我见过太多人卡在“代码能编译、舵机就是不听话”这个阶段&#xff0c…

2026/10/13 0:00:57 阅读更多 →
CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

CAN总线原理与STM32实战:抗干扰、仲裁、错误处理全解析

1. 为什么CAN总线至今仍是工业现场的“硬通货”?——从汽车底盘到智能温室的真实需求你有没有拆过一辆老款燃油车的中控台?或者调试过某高校实验室里那台跑着Modbus协议却频频丢帧的PLC控制柜?又或者,在某个农业物联网项目里&…

2026/10/13 0:00:57 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 21:05:09 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 14:48:49 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →