排序之冒泡排序

冒泡排序

原始思想

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; } ```

相关推荐
Fanxt_Ja3 分钟前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下4 分钟前
最终的信号类
开发语言·c++·算法
茉莉玫瑰花茶15 分钟前
算法 --- 字符串
算法
玉衡子17 分钟前
九、MySQL配置参数优化总结
java·mysql
叽哥18 分钟前
Kotlin学习第 8 课:Kotlin 进阶特性:简化代码与提升效率
android·java·kotlin
麦兜*20 分钟前
MongoDB Atlas 云数据库实战:从零搭建全球多节点集群
java·数据库·spring boot·mongodb·spring·spring cloud
带刺的坐椅20 分钟前
DamiBus v1.1.0 发布(给单体多模块解耦)
java·事件总线·damibus
葡萄城技术团队21 分钟前
用 Java 构建健壮 REST API 的 4 个关键技巧
java
杨杨杨大侠21 分钟前
解密 atlas-mapper 框架 (9/10):故障排查与调试技巧
java·开源·github
Slaughter信仰23 分钟前
深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
java·jvm·数据库