当前位置: 首页 > article >正文

双向冒泡排序算法

 

一 概述

       双向冒泡排序(Cocktail Shaker Sort)是传统冒泡排序的改进版本,通过双向交替扫描数组,在每轮循环中同时将最大值移动到右侧、最小值移动到左侧,从而减少排序轮次。

二、算法步骤
初始数组:[6,4,7,8,2]

第1轮双向扫描
正向扫描(左→右):

比较6和4 → 交换 → [4,6,7,8,2]
比较6和7 → 不交换
比较7和8 → 不交换
比较8和2 → 交换 → [4,6,7,2,8]
此时右边界收缩到索引3(原索引4已放置最大值8)
反向扫描(右←左):

比较7和2 → 交换 → [4,6,2,7,8]
比较6和2 → 交换 → [4,2,6,7,8]
比较4和2 → 交换 → [2,4,6,7,8]
左边界收缩到索引1(原索引0已放置最小值2)
第2轮双向扫描
正向扫描(左→右):
在索引1到3之间扫描:

4和6 → 不交换
6和7 → 不交换
无交换发生 → 提前终止排序
三、C++实现代码
 #include <iostream>
#include <algorithm> // 包含swap函数

void cocktailSort(int arr[], int n) {
    int left = 0, right = n - 1;
    bool swapped = true;

    while (left < right && swapped


http://www.kler.cn/a/565713.html

相关文章:

  • 模型的在线量化和离线量化
  • 深入理解分布式系统中的关键概念:三阶段提交、补偿事务、消息队列与Saga事务模型及分布式ID生成方案
  • Qt 中实现两个 QTableView 同步高亮与滚动的方案
  • 每日学习Java之一万个为什么?[MySQL面试篇]
  • 内容中台实战指南:效能提升与体系构建
  • Laravel从入门到精通:开启高效开发之旅
  • spring的15个经典面试题
  • reCAPTCHA v3 实现笔记
  • 第三方应用程序接入DeepSeek服务的安全策略与实践
  • 【分布式锁通关指南 04】redis分布式锁的细节问题以及RedLock算法原理
  • 数据链路层 ARP 具体过程 ARP 欺骗
  • 【练习】【贪心】力扣45. 跳跃游戏 II
  • python秒杀活动支撑方案教程
  • 21-发糖果
  • .bash_profile一些笔记
  • win10下安装wireshark的问题
  • 算法系列之排序算法-堆排序
  • 论文:KernelBench: Can LLMs Write Efficient GPU Kernels?
  • AI辅助学习vue第十三章
  • LeetCode 热题 100_有效的括号(69_20_简单_C++)(栈;栈+哈希表(建立左右括号的对应关系))