3.冒泡排序

冒泡排序

基本思想:每次比较两个相邻的元素 如果它们的顺序错误就把它们交换过来

重点:交换

时间复杂度为:O(n^2)(平均情况、最坏情况)

最优情况:输入的数组已经是完全有序的时候 冒泡排序只需要进行一次遍历即可确定数组已经排序完成

原理:每一趟只能确定将一个数归位

比如说 现在我们有 3 4 1 5 2  我们想将其升序(过程如下图)

我们第一趟就将5归位(放在最后) 归位好的数便不需要再比较 移动

第二趟将4归位

第三趟将3归位

其实我们这还有第四趟 将2归位 但我们这里恰好排好序 所以我就懒得画图了 这里提一下

总结:如果有n个数进行排序 我们只需将n-1个数归位(即进行n-1趟操作)

每一趟操作都需要从第1位(下标为0的位置)开始进行相邻两个数的比较

代码实现如下:

在这段代码中 我们需要注意的是

1.你的下标是从1开始还是从0开始  下标不同代表你的起始位置不同 循环条件不同                        2.在交换过程中 我们让当前元素与下一元素比较 符合条件的便交换 假如你的数组大小刚好能存放下你的所有数(没有空余的空间)  这里j+1就会越界访问 会发生错误

比如上面的数组a[100]换成a[5] 这时候就会产生错误  

3.for循环的循环条件在这里很重要 当然,当我们理解了冒泡排序的过程 我们也就不会搞错

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/792709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IT外包服务:企业数据资产化加速利器

随着数字化时代的兴起,数据成为企业最为重要的资源之一。数据驱动创新对于企业的竞争力和可持续发展至关重要。在这一进程中,IT外包服务发挥着关键作用,加速企业数据资产化进程,为企业提供了重要支持。 首先,IT外包服务…

第七讲 索引并发控制

我们假设迄今为止讨论的所有数据结构都是单线程访问的。 但 DBMS 需要允许多个线程安全地访问数据结构,以充分利用额外的 CPU ,并隐藏磁盘 I/O 停顿。 并发控制协议【concurrency control protocol】是 DBMS 用于确保在共享对象上的并发操作得到“正确”…

【React】基于JS 3D引擎库实现关系图(图graph)

主角:3D Force-Directed Graph 简介:一个使用ThreeJS/WebGL进行3D渲染的Graph图库 GitHub: https://github.com/vasturiano/3d-force-graph Ps: 较为复杂或节点巨大时,对GPU>CPU消耗较大,同量级节点对比下优于AntV G6和Echarts…

简单介绍lamp/lnmp和ssh服务

lamp/lnmp和ssh服务 lamp/lnmp配置lnmp ssh服务 lamp/lnmp LAMP linuxapachemysqlphp LNMP linuxnginxmysqlphp配置lnmp 安装的组件 nginx -epel源 php-fpm - remi源 mysql - mysql-server mariadb 第一步:安装nginx nginx安装 第二步:安装mysql yum…

树(Tree) - 概念与基础

树的基本概念 树(Tree)是一种重要的数据结构,它在计算机科学中被广泛应用于各种算法和程序中。树是由节点(node)组成的层次结构,其中每个节点都有一个父节点,除了根节点外,每个节点都有零个或多个子节点。树的一个关键特点是没有…

【算法每日一练]-数论(保姆级教程 篇1 埃氏筛,欧拉筛)

目录 保证给你讲透讲懂 第一种:埃氏筛法 第二种:欧拉筛法 题目:质数率 题目:不喜欢的数 思路: 问题:1~n 中筛选出所有素数(质数) 有两种经典的时间复杂度较低的筛法&#xff0…

蓝桥杯真题:路径

import java.util.Scanner; // 1:无需package // 2: 类名必须Main, 不可修改public class Main {public static void main(String[] args) {int n 2022; //从下标为1开始&#xff0c;方便计算int[] q new int[n]; //存储最短路q[1] 0; //起始条件for (int i 2; i < 202…

C语言 | Leetcode C语言题解之3题无重复字符的最长子串

题目&#xff1a; 题解&#xff1a; int lengthOfLongestSubstring(char * s) {//类似于hash的思想//滑动窗口维护int left 0;int right 0;int max 0;int i,j;int len strlen(s);int haveSameChar 0;for(i 0; i < len ; i ){if(left < right){ //检测是否出现重…

5.2 通用代码,数组求和,拷贝数组,si配合di翻转数组

5.2 通用代码&#xff0c;数组求和&#xff0c;拷贝数组&#xff0c;si配合di翻转数组 1. 通用代码 通用代码类似于一个用汇编语言写程序的一个框架&#xff0c;也类似于c语言的头文件编写 assume cs:code,ds:data,ss:stack data segmentdata endsstack segmentstack endsco…

I.MX6ULL的MAC网络外设设备树实现说明一

一. 简介 IMX6ULL芯片内部集成了两个 10/100M 的网络 MAC 外设&#xff0c;所以&#xff0c;ALPHA开发板上的有线网络的硬件方案是&#xff1a; SOC内部集成网络MAC外设 PHY网络芯片方案。 本文来说明一下MAC网络外设的设备节点信息的实现。 因此&#xff0c; I.MX6ULL 网络…

Static关键字有什么作用?

static 关键字在 Java 中有多种用途&#xff0c;它主要用来修饰成员变量、成员方法、代码块和内部类。下面是 static 关键字的一些主要作用&#xff1a; 静态变量&#xff08;静态成员变量&#xff09;&#xff1a; static 修饰的变量属于类本身&#xff0c;而非类的某个对象。…

leetcode热题100.数组中的第k大的元素

作者&#xff1a;晓宜 &#x1f308;&#x1f308;&#x1f308; 个人简介&#xff1a;互联网大厂Java准入职&#xff0c;阿里云专家博主&#xff0c;csdn后端优质创作者&#xff0c;算法爱好者 ❤️❤️❤️ 你的关注是我前进的动力&#x1f60a; &#x1f319;&#x1f319;&…

谷歌浏览器必用AI插件 - elmo,好用,还免费

功能&#xff1a; 1、即时生成网站内容摘要&#xff1b; 2、支持提问并从页面获得直接回答&#xff1b; 3、通过关键词获取相关信息&#xff1b; 4、可以与 PDF 对话&#xff0c;方便理解大型文档、学习或审阅报告&#xff1b; 5、与 YouTube 视频交互问答&#xff08;测试…

探索前端架构:MVC、MVVM和MVP模式

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

C语言常用语法提要

为读者查阅方便,下面列出C语言语法中常用的一些部分的提要。为便于理解没有采用严格的语法定义形式,只是备忘性质&#xff0c;供参考。 1.标识符 可由字母、数字和下划线组成。标识符必须以字母或下划线开头。大、小写的字母分别认为是两个不同的字符。不同的系统对标识符的字…

sky06笔记下

1.边沿检测 检测输入信号din的上升沿&#xff0c;并输出pulse module edge_check ( clk, rstn, din, pulse ); input wire clk,rstn; input wire din; output reg pulse;wire din_dly;always (posedge clk or negedge rstn)beginif(!rstn)din_dly < 1b0;elsedin_dly < d…

307k star, 免费的编程书籍 free-programming-books

307k star, 免费的编程书籍 free-programming-books 分类 开源分享 项目名: free-programming-books -- 各种编程语言免费学习资源 Github 开源地址&#xff1a; https://github.com/EbookFoundation/free-programming-books 查找页面&#xff08;英文&#xff09;&#xff…

补代码随想录算法训练营第43天 |1049. 最后一块石头的重量 II、 494. 目标和、 474.一和零

今天的题目有点抽象&#xff0c;得好好理解 1049. 最后一块石头的重量 II 本题就和 昨天的 416. 分割等和子集 很像了&#xff0c;可以尝试先自己思考做一做。 视频讲解&#xff1a;动态规划之背包问题&#xff0c;这个背包最多能装多少&#xff1f;LeetCode&#xff1a;1049…

tigramite教程(七)使用TIGRAMITE 进行条件独立性测试

文章目录 概述1 连续数值变量1.1 ParCorr 偏相关&#xff08;ParCorr类&#xff09;1.2 鲁棒偏相关&#xff08;RobustParCorr&#xff09;非线性检验1.3 GPDC1.4 CMIknn 2a. 分类/符号时间序列2b. 混合分类/连续时间序列多变量X和Y的测试 概述 这个表格概述了 X ⊥ Y ∣ Z X\…

c语言文件操作(超详细)

前言 这次的博客&#xff0c;可以让大家快速掌握文件操作&#xff0c;方便大家快速找到不懂的内容 文件操作的作用以及基础 1. 为什么使用文件&#xff1f; 如果没有文件&#xff0c;我们写的程序的数据是存储在电脑的内存中&#xff0c;如果程序退出&#xff0c;内存回收&…