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

冒泡排序算法

 一 概述

         冒泡排序是一种简单的交换排序算法,其核心思想是通过相邻元素比较和交换将最大元素逐步移动到数组末尾。

二 算法步骤

        下面以数组 [6,4,7,8,2]为例,详细说明其实现过程。

1 第一轮遍历

比较 6 和 4→ 交换 → [4,6,7,8,2]
比较 6和 7 → 不交换
比较 7 和 8→ 不交换
比较 8 和 2→ 交换 → [4,6,7,2,8]
结果:最大值 8 到达末尾
2 第二轮遍历

比较 4和 6 → 不交换
比较 6和 7→ 不交换
比较 7和 2 → 交换 → [4,6,2,7,8]
结果:次大值 7归位
3 第三轮遍历

比较 4 和 6→ 不交换
比较 6和 2→ 交换 → [4,2,6,7,8]
结果:6归位
4 第四轮遍历

比较 4和 2→ 交换 → [2,4,6,7,8]
结果:完全有序
三 C++ 实现

       下面是C++ 实现的带优化版本,如果本轮没有交换说明数组已经排序好。

#include <iostream>
using namespace std;

void bubbleSort(int arr[], int n) {
    bool swapped;


http://www.mrgr.cn/news/92452.html

相关文章:

  • 前端实现rsa加密功能
  • 【学写LibreCAD】1 LibreCAD主程序
  • 力扣-动态规划-494 目标和
  • ARM Coretex-M核心单片机(STM32)分析hardfault的原因
  • Docker快速使用指南
  • TFChat:腾讯大模型知识引擎(DeepSeek R1)+飞书机器人实现AI智能助手
  • 浅显易懂HashMap的数据结构
  • Ubuntu+deepseek+Dify本地部署
  • Python在实际工作中的运用-通用格式CSV文件自动转换XLSX
  • 基于Kerberos认证对接华为云Elasticsearch
  • JVM 简单内存结构及例子
  • k8s中pod的调度策略之pod的亲和性调度与反亲和性调度 一文搞懂 k8s中创建的pod如何调度?
  • 蓝桥杯练习代码
  • 【最大通过数——二分】
  • 机试刷题_NC17 最长回文子串【python】
  • 细说STM32F407单片机RS485收发通信实例及调试方法
  • 模拟算法.
  • Mellanox的LAG全称是什么?网卡的创建机制如何?(Link Aggregation Group 链路聚合组)
  • 在nodejs中使用ElasticSearch(三)通过ES语义检索,实现RAG
  • 本地部署阿里的万象2.1文生视频(Wan2.1-T2V-1.3B)模型