排序之冒泡排序

冒泡排序

原始思想

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

相关推荐
轻刀快马1 分钟前
浅聊Java反射
java·开发语言
Gerardisite2 分钟前
企业微信智能客服开发实战:API自动回复指南
java·开发语言·python·机器人·企业微信
NNYSJYKJ4 分钟前
K12 学习常见问题破解:脑能思维链的算法与教育应用
学习·算法
要开心吖ZSH4 分钟前
零基础入门 Spring WebFlux 与 Project Reactor:从小白到顿悟
java·响应式编程·spring webflux
智塑未来4 分钟前
装备制造行业设计制造一体化痛点攻克与实战经验总结
java·开发语言·制造
Devin~Y9 分钟前
电商AIGC智能客服面试:JVM调优、Spring Cloud微服务、Redis缓存、Kafka消息、K8s观测与RAG落地
java·jvm·spring boot·redis·spring cloud·kafka·kubernetes
Ai马猴子12 分钟前
企业定制专属模型,gpt-5.4-cdx高效适配,DMXAPI 安全合规
java·gpt·安全
2301_7890156212 分钟前
Linux:基础指令(二)
linux·运维·服务器·c语言·开发语言·c++·算法
星晨羽16 分钟前
Java通过FTP协议实现文件上传下载
java·开发语言
逸Y 仙X16 分钟前
文章三十:Elasticsearch SQL实战案例
java·大数据·sql·elasticsearch·搜索引擎·全文检索