鸡尾酒排序 | 算法必看系列十三

简介: 鸡尾酒排序其实就是冒泡排序的变形,它的时间复杂度和冒泡排序一样,都是O(n^2),比快速排序要慢不少。

原文链接

鸡尾酒排序其实就是冒泡排序的变形,它的时间复杂度和冒泡排序一样,都是O(n^2),比快速排序要慢不少。

image.png

鸡尾酒排序的思想有点像摆钟一样,从左到右,又从右到左。而冒泡排序只是单向执行。

鸡尾酒排序也是交换排序,假设做一个升序排序,先从左到右,交换一趟把最大的数放置右边,然后从右到左,把最小的数放置左边。

视频动画

Code

image.png

Result

image.png

优化 减少不必要的交换

看了前面冒泡排序和快速排序,我相信优化是一项学习的重点,以后面试中可以把这项说说来,展示出你的实力。

这次我们就优化不必要的交换次数,come on!

我么通过移除swap函数的调用,从而让程序运行的更快一点。每次进行符合条件判断时,不做交换,让最大或者最小的数据做一个标记,待全部比较完之后,才进行做交换。

视频动画


Code

image.png

Result

image.png

-----End-----

来源 | 算法无遗策
作者 | 我脱下短袖

相关文章
|
Windows
Keil5中恢复默认布局-解决左边栏,底部栏位置不是默认布局
Keil5中恢复默认布局-解决左边栏,底部栏位置不是默认布局
2897 0
|
缓存 NoSQL 数据库
探秘Redis读写策略:CacheAside、读写穿透、异步写入
本文介绍了 Redis 的三种高可用性读写模式:CacheAside、Read/Write Through 和 Write Behind Caching。CacheAside 简单易用,但可能引发数据不一致;Read/Write Through 保证数据一致性,但性能可能受限于数据库;Write Behind Caching 提高写入性能,但有数据丢失风险。开发者应根据业务需求选择合适模式。
2841 2
探秘Redis读写策略:CacheAside、读写穿透、异步写入
|
网络协议 安全
DNS查询工具 - dig
【1月更文挑战第4天】
939 0
|
存储 运维 负载均衡
Redis Cluster集群原理+三主三从交叉复制实战+故障切换
Redis Cluster集群原理+三主三从交叉复制实战+故障切换
2702 0
Redis Cluster集群原理+三主三从交叉复制实战+故障切换
|
9月前
|
存储 消息中间件 监控
API集成方案:淘宝多店铺管理,统一运营!
本文探讨如何通过淘宝开放平台API集成,构建多店铺统一运营系统。解决数据分散、操作重复、协同困难等痛点,实现商品、库存、订单、会员及营销的集中管理与自动化操作,提升效率、降低成本,并为智能化决策提供支撑,助力电商规模化发展。(238字)
|
9月前
|
数据采集 人工智能 监控
AI 应用软件的开发
AI应用开发遵循AI-SDLC,强调数据闭环与迭代实验:从问题定义、数据工程(占60%-80%)、模型实验,到集成部署与MLOps运营。融合敏捷AI与AI辅助开发,关键在数据质量、MVP验证及安全可解释性。(239字)
|
Ubuntu Linux Windows
两种Ubuntu和Windows互相共享文件夹的方法
两种Ubuntu和Windows互相共享文件夹的方法
|
Python
python之列表中常用的函数:append,extend,insert,pop,remove,del函数的定义与使用方法,元素是否在列表中的判断
python之列表中常用的函数:append,extend,insert,pop,remove,del函数的定义与使用方法,元素是否在列表中的判断
1090 0
|
安全 5G 数据安全/隐私保护
|
监控 NoSQL 算法
SpringBoot 监控神器——Actuator 保姆级教程 1
SpringBoot 监控神器——Actuator 保姆级教程
SpringBoot 监控神器——Actuator 保姆级教程 1

热门文章

最新文章