冒泡排序算法优化

ops/2025/3/1 17:02:52/

一 概述

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

二、基础冒泡排序

 void bubbleSort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        for (int j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                swap(arr[j], arr[j+1]);
            }
        }
    }
}
                    

                  
三、优化方案及实现

1 提前终止优化(最优情况时间复杂度O(n))
   void optimizedBubble1(int arr[], int n) {
    bool swapped;
    for (int i = 0; i < n-1; i++) {
        swapped = false;
        for (int j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                swap(arr[j], arr[j+1]);
                swapped = true;
            }
   


http://www.ppmy.cn/ops/162283.html

相关文章

Spring Boot环境配置

一、Java开发环境 确保你的计算机已经安装了Java Development Kit&#xff08;JDK&#xff09;。建议使用JDK 17&#xff0c;可以从Oracle官方网站上下载并安装。 1.下载及配置环境变量 &#xff08;1&#xff09;下载JDK&#xff1a;官网下载 &#xff08;2&#xff09;运…

深度学习-136-LangGraph之应用实例(五)构建RAG问答系统同时从不同的角度对比优化效果

文章目录 1 大语言模型2 小粒度分割文档2.1 处理文本构建Document2.2 向量存储2.3 创建图2.4 测试调用3 大粒度分割文档3.1 构建Document3.2 向量存储3.3 创建图3.4 测试调用4 总结与优化4.1 问题分析4.2 对比不同的返回文档数4.3 对比不同的嵌入模型4.3.1 嵌入模型nomic-embed…

【GESP】C++二级真题 luogu-B4037 [GESP202409 二级] 小杨的 N 字矩阵

GESP二级真题&#xff0c;多层循环和分支练习&#xff0c;难度★✮☆☆☆。 题目题解详见&#xff1a;https://www.coderli.com/gesp-2-luogu-b4037/ 【GESP】C二级真题 luogu-B4037 [GESP202409 二级] 小杨的 N 字矩阵 | OneCoderGESP二级真题&#xff0c;多层循环和分支练习…

一个多端阅读小说精品屋

novel-plus 是一个多端&#xff08;PC、WAP&#xff09;阅读&#xff0c;功能完善的原创文学 CMS 系统。由前台门户系统、作家后台管理系统、平台后台管理系统和爬虫管理系统等多个子系统构成&#xff0c;包括小说推荐、作品检索、小说排行、小说阅读、小说评论、会员中心、作家…

多维模型数据库(OLAP)和列式数据库的区别

OLAP&#xff08;在线分析处理&#xff09;和列式数据库虽然在某些场景下有重叠&#xff0c;但它们是不同的概念&#xff0c;各自有不同的目的和特点。下面我将通过举例来详细说明它们之间的区别&#xff1a; 1. OLAP&#xff08;多维数据分析&#xff09; OLAP 是一种用于数…

从0-1学习Mysql第五章: 索引与优化

第5章: 索引与优化 在数据库系统中&#xff0c;索引就像书籍的目录&#xff0c;能够帮助我们快速定位到所需的数据。本章详细讲解了索引的概念、常见索引类型、创建与删除方法、优化作用、查询优化技巧以及执行计划&#xff08;EXPLAIN&#xff09;的使用。同时&#xff0c;我…

Qt跨线程信号槽调用:为什么信号不能像普通函数那样调用

1. 信号与槽机制的基本原理 在 Qt 中&#xff0c;信号与槽机制是一种事件驱动的通信方式&#xff0c;用于对象之间的解耦交互。其关键特点如下&#xff1a; 信号不能直接调用 信号只是一个声明&#xff0c;并没有实际的函数实现。它们通过 emit 关键字在对象内部被触发&…

【Go | 从0实现简单分布式缓存】-3:分布式节点通信

本文目录 一、通信流程二、peers.go三、http.go四、geecache.go五、测试代码 本文为极客兔兔动手写分布式缓存GeeCache学习笔记。 一、通信流程 在前面一节中&#xff0c;已经为 HTTPPool 实现了服务端功能&#xff0c;通信不仅需要服务端还需要客户端&#xff0c;因此本节来…