排序-选择排序(Selection Sort)冒泡排序(Bubble Sort)

发布时间:2026/10/20 6:03:51

排序-选择排序(Selection Sort)冒泡排序(Bubble Sort) 目录前言冒泡排序思路核心思想时间复杂度O(n^2)代码如下选择排序思路核心思想时间复杂度O(n^2)代码如下选择排序优化思路优化代码如下排序稳定性比较结语前言选择排序与冒泡排序比较简单为补齐排序就讲一下思路与时间复杂度给一下代码。然后补充一下所以排序的稳定性。其他排序快速排序排序-快速排序Quick sort基础版-CSDN博客归并排序排序-归并排序Merge Sort-CSDN博客插入排序排序—插入排序(Insertion Sort)-CSDN博客希尔排序排序-希尔排序(Shell Sort)-CSDN博客冒泡排序思路核心思想重复遍历数组相邻元素两两比较顺序错误则交换。每轮遍历后最大元素浮到末尾。冒泡排序有教学价值但是时间复杂度比较高使用少。时间复杂度O(n^2)代码如下void BubbleSort(int* a, int n) { for (int j 0; j n; j) { // 单趟 int flag 0; for (int i 1; i n - j; i) { if (a[i - 1] a[i]) { Swap(a[i - 1], a[i]); flag 1; } } if (flag 0) { break; } } }选择排序思路核心思想每轮从未排序区间选出最小元素放到已排序区间的开头。时间复杂度O(n^2)不管怎么样时间复杂度都比较高因为选择排序一直都是选择最小的拿出代码如下void SelectionSort(int* a, int n) { for (int i 0; i n-1; i) { int Min i; for (int j i 1; j n; j) { if (a[Min] a[j]) { Min j; } } swap(a[i], a[Min]); } }选择排序优化思路普通单向选择排序每一轮只找最小值放到数组最左边已排序位置只处理一端。这份双向选择排序逻辑两个指针begin左端待排序起点end右端待排序终点一轮遍历区间[begin, end]同时找出mini当前区间最小值下标maxi当前区间最大值下标把最小值交换到a[begin]把最大值交换到a[end]begin左边界右移end--右边界左缩下一轮处理中间剩下的区间while(begin end)循环直到左右指针相遇排序完成优化代码如下void SelectSort(int* a, int n) { int begin 0, end n - 1; while (begin end) { int mini begin, maxi begin; for (int i begin 1; i end; i) { if (a[i] a[maxi]) { maxi i; } if (a[i] a[mini]) { mini i; } } Swap(a[begin], a[mini]); Swap(a[end], a[maxi]); begin; --end; } }排序稳定性比较我这里只比较比较常见的七大排序冒泡快速选择插入希尔堆归并。排序稳定性插入排序稳定希尔排序不稳定选择排序不稳定堆排序不稳定冒泡排序稳定快速排序不稳定归并排序稳定结语谢谢你的观看希望可以给你提供帮助
延伸阅读

更多相关文章

2026/10/20 6:02:01

连续相位旋转模型:让时序知识图谱与AI智能体记忆动态演化

1. 项目概述:当时间不再是标签“时间不是一个标签”——这句话乍一听有点哲学意味,但在处理时序数据和构建智能体记忆系统时,它却是一个极具颠覆性的技术视角。我们习惯了在知识图谱里给事实贴上一个“时间戳”标签,比如“张三在2…

2026/10/18 21:28:14

3.智能体-Openclaw安装与部署

1. 安装前准备 OpenClaw 官网:https://openclaw.org(请访问官网获取最新文档、下载链接和官方系统要求)。 在开始安装之前,请确保你的开发环境满足以下要求,并完成必要的准备工作,这将有助于后续步骤的顺…

2026/10/20 2:30:30

自媒体号主职业转型指南与求职策略

1. 项目背景解析"号主求职"这个标题看似简单,却蕴含着当前互联网内容创作领域的深层需求。作为一位深耕内容创作领域多年的从业者,我理解这个标题背后反映的是自媒体账号运营者在职业发展转型期的真实诉求。在内容创业领域,"号…

2026/10/20 6:01:26

PLMS自适应滤波器:脉冲噪声下的LMS鲁棒性改进原理与Matlab实现

前几天,一位做车载音频的工程师朋友跟我抱怨,说他的回声消除算法在实验室里测得好好的,一到实际路测就“抽风”:安静路段收敛得很干净,可一旦出现开关门、喇叭鸣笛这类突发噪声,滤波器的权值就像被弹弓弹了…

2026/10/20 6:01:26

SVR-SVDD融合的无监督异常检测:原理、Matlab实现与调参全攻略

在工业异常检测、设备状态监测这类任务里,最让人头疼的往往不是“怎么建模”,而是“正常样本很多,异常样本太少,甚至根本没有标签”。传统分类器一上来就抓瞎,有监督方法基本废掉。这时候支持向量数据描述(…

2026/10/20 6:01:26

AI重构IT职场:岗位分工、技能要求与从业者应对策略

去年下半年开始,我明显感觉到身边做IT的朋友聊天时,话题从“哪个框架好用”慢慢变成了“现在这个情况,我们这些人以后到底要干嘛”。这不是某个人的焦虑,而是整个行业正在经历一轮静默但彻底的重构。我所在的团队,过去…

2026/10/20 6:01:26

深度Koopman算子实现非线性动力学线性嵌入:理论到Python/Matlab实战

这年头做非线性动力学的人,大概都绕不开Koopman算子这个词。我第一次认真研究这个方向,是在一个流体模拟项目里做特征提取。当时用动态模态分解(DMD)做辨识,线性假设在强非线性流动下频频失效——靠前几步预测还能看&a…

2026/10/20 5:56:25

字母象形与五行水象:从W/S/M到命名设计的认知工具

把“字母象形”和“阴阳五行”放在一起琢磨,原本是一件很容易被人当成故弄玄虚的事;但如果你手里刚好有一串字母——w,s,m,f,o,e,n,i——并且试图解释它们为什么都跟“水”有关系,这事就变得特别有意思。我先说结论:这串对应关系不…

2026/10/19 18:06:35

金融AI落地指南:从调研报告到技术选型与工程实践

简介:这份PDF报告聚焦2025年金融服务业中国AI现状与趋势,面向金融科技从业者、AI战略规划人员及关注行业数字化转型的研究者,帮助读者把握生成式AI在银行、支付、交易等场景中的落地路径与投资方向。资源包内含1个PDF文件,大小约1…

2026/10/20 1:05:37

单片机C运行时从启动到多任务:中断安全与共享资源冲突

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

2026/10/20 1:05:37

GCC编译四步详解:预处理、编译、汇编、链接实战

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

2026/10/20 1:05:37

FIW线是什么?FEP注塑线与普通氟塑料线的区别及应用指南

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

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑