排序之冒泡排序

冒泡排序

原始思想

cpp 复制代码
bool bubble(int* arr, int lo, int hi)
{
	bool sorted = true;
	while (++lo < hi) {
		if (arr[lo - 1] > arr[lo]) {
			mySwap2(arr[lo - 1], arr[lo]);
			sorted = false;
		}
	}
	return sorted;
}
void bubbleSort(int* arr, int lo, int hi)
{
	while (!bubble(arr, lo, hi--));
}

lo,hi),通过一个标志记录逆序的元素 ,该标志控制外层循环 ### 改进 可以把原始数组看成无序的前缀和有序的后缀,一开始有序的后缀可能没有,为0, 在实际排序中可能会出现前缀有部分是有序的,不用进行排序, ```cpp int bubblePlus(int* arr, int lo, int hi) { int last = lo; while (++lo < hi) { if (arr[lo - 1] > arr[lo]) { last = lo; mySwap2(arr[lo - 1], arr[lo]); } } return last; } ```

相关推荐
MY_TEUCK22 分钟前
【Java 后端】SpringBoot 登录认证与会话跟踪实战(JWT + Filter/Interceptor)
java·开发语言·spring boot
飞Link23 分钟前
大模型长文本的“救命稻草”:深度解析 TurboQuant 与 KV Cache 压缩技术
算法
今天长肉了吗32 分钟前
银行风控项目踩坑实录:指标跑了6小时,风险评分全挂了
java
随读手机1 小时前
多式联运信息交互平台完整方案(2026版)
java·ai·eclipse·云计算·区块链
郝学胜-神的一滴1 小时前
深度学习优化核心:梯度下降与网络训练全解析
数据结构·人工智能·python·深度学习·算法·机器学习
Je1lyfish2 小时前
CMU15-445 (2025 Fall/2026 Spring) Project#3 - QueryExecution
linux·c语言·开发语言·数据结构·数据库·c++·算法
许彰午2 小时前
03-二叉树——从递归遍历到非递归实现
java·算法
nj01282 小时前
Spring 循环依赖详解:三级缓存、早期引用、AOP 代理与懒加载
java·spring·缓存
Brilliantwxx2 小时前
【C++】 vector(代码实现+坑点讲解)
开发语言·c++·笔记·算法
野生技术架构师2 小时前
2026年最全Java面试题及答案汇总(建议收藏,面试前看这篇就够了)
java·开发语言·面试