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循环的循环条件在这里很重要 当然,当我们理解了冒泡排序的过程 我们也就不会搞错

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

day11 java不同对象的关联与内存分析 JavaBean用途及讲解 import导入包

不同对象的关联与内存分析 内存图: 对象的属性是另一个对象时,在堆内存内该属性对应的值是另一个对象的首地址(指向另一个堆内存内另一个对象),两对象建立了联系,可以根据箭头间接调用。 JavaBean…

基于SpringBoot + Vue实现的员工绩效考核管理系统设计与实现+毕业论文+PPT+任务书+搭建视频

介绍 系统包含员工和管理员两个角色 管理员: 部门管理:负责创建、修改和删除部门,以及为部门设置权限和角色。 岗位管理:定义和管理岗位信息,包括添加、修改和删除岗位,以及设置岗位的职责和要求 员工…

一、企业级架构之LNMP

一、LNMP 概述 1、LNMP之间的关系: LNMP Linux Nginx MySQL PHP 2、配置LNMP服务器: (1) 克隆一台centos7虚拟机,修改 IP 地址 和 UUID 编号。 IP 为 10.1.1.10,UUID 修改后三位。 (2) 设置主机名称,绑定IP地…

计算机组成原理-10-控制单元的设计

10. 控制单元的设计 文章目录 10. 控制单元的设计10.1 组合逻辑设计10.1.1 CU外特性10.1.2 微操作的节拍安排10.1.3 组合逻辑设计步骤 10.2 微程序设计10.2.1 微程序设计思想10.2.2 微指令格式10.2.3 毫微程序设计10.2.4 微程序设计举例 完结撒花 本笔记参考哈工大刘宏伟老师的…

最新社交相亲系统源码PHP

最新社交相亲系统源码PHP 安装环境: php7.2 mysql 5.7 框架: 后端thinkphp6 前端:jquery layui PC 移动端响应式 线上案例:https://cjr.oemsun.com/ 主要页面及功能预览 首页 相亲资料详情页 红娘跟进记录 海报、一键复制分…

Cisco ACI Simulator 6.0(5h) - ACI 模拟器

Cisco ACI Simulator 6.0(5h) - ACI 模拟器 Application Centric Infrastructure (ACI) Simulator Software 请访问原文链接:https://sysin.org/blog/cisco-acisim-6/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.o…

【核弹级安全事件】XZ Utils库中发现秘密后门,影响主要Linux发行版,软件供应链安全大事件

Red Hat 发布了一份“紧急安全警报”,警告称两款流行的数据压缩库XZ Utils(先前称为LZMA Utils)的两个版本已被植入恶意代码后门,这些代码旨在允许未授权的远程访问。 此次软件供应链攻击被追踪为CVE-2024-3094,其CVS…

卡奥斯工业互联网平台分析

一、 背景 卡奥斯是海尔推出的具有中国自主知识产权、全球首家引入用户全流程参与体验的工业互联网平台。其核心是大规模定制模式,通过持续与用户交互,将硬件体验变为场景体验,将用户由被动的购买者变为参与者、创造者,将企业由原…

Vue3配置router路由步骤

Vue3配置router路由步骤 首先创建一个vue3的项目 先检查一下router的版本,可以在pakage.json里面查看,也可以你直接在终端输入 npm list vue-router如果版本比较低的话,先升级一下 vue3的话,用以下命令 npm install vue-route…

C语言TCP服务器模型 : select + 多线程与双循环单线程阻塞服务器的比较

观察到的实验现象: 启动三个客户端: 使用双循环阻塞服务器:只能accept后等待收发,同时只能与一个客户端建立连接,必须等已连接的客户端多次收发 明确断开后才能与下个客户端连接 使用IO多路复用select:可以同时接收所有的连接请求,并且连接状态一直是存活的,直到客户端关闭连…

Kubesphere 自动化部署失败报错

Kubesphere 自动化部署在 push tag 阶段失败报错 git push http://****:****github.com/****/devops-java-sample.git --tags --ipv4 remote: Support for password authentication was removed on August 13, 2021. remote: Please see https://docs.github.com/get-started/g…

Netty是什么

一、Netty介绍 1、Netty是一个异步的、基于事件驱动的网络应用框架,用以快速开发高性能、高可靠性的网络IO程序。 2、Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用。 3、Netty本质是…

银行数字化转型导师坚鹏:银行数字化转型给分行带来的8大价值

银行数字化转型给分行带来的8大价值 银行数字化转型对不仅对总行产生了深远影响、给总行带来了新质生产力,对分行也会产生重要价值,银行数字化转型导师坚鹏从以下8个方面进行详细分析,相信能够给您带来重要启发,从而加速银行分行…

【并发编程系列】使用 CompletableFuture 实现并发任务处理

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

[C#]OpenCvSharp利用MatchTemplate实现多目标匹配

【效果展示】 原图 模板图 匹配结果: 【实现部分代码】 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using…

RabbitMQ3.x之九_Docker中安装RabbitMQ

RabbitMQ3.x之_Docker中安装RabbitMQ 文章目录 RabbitMQ3.x之_Docker中安装RabbitMQ1. 官网2. 安装1 .拉取镜像2. 运行容器 3. 访问 1. 官网 rabbitmq - Official Image | Docker Hub 2. 安装 1 .拉取镜像 docker pull rabbitmq:3.13.0-management2. 运行容器 # latest Rabb…

从零起步:开启你的IT职业之旅

简介: 信息技术(IT)行业以其快速发展和广阔的就业前景吸引着全球众多职场新人。但对于零基础的求职者而言,挺进这一行业似乎是条充满挑战的道路。进入IT行业可能看起来是一项艰巨的挑战,尤其是对于那些没有任何相关经…

伪造靶机之iptables

伪造禁ping、网络不可达、主机不可达、协议、端口的命令 iptables -A INPUT -p icmp --icmp-type echo-request -j DROP iptables -A INPUT -s 172.18.6.89 -p icmp -j REJECT --reject-with icmp-net-unreachable iptables -A INPUT -s 172.18.6.89 -p icmp -j REJECT --re…

【Canavs与艺术】绘制蓝白绶带大卫之星勋章

【图例】 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>用Canvas绘制蓝白绶带大卫之星勋章</title><style type&quo…

Python如何解决“滑动拼图”验证码(8)

前言 本文是该专栏的第67篇,后面会持续分享python爬虫干货知识,记得关注。 做过爬虫项目的同学,或多或少都会接触到一些需要解决验证码才能正常获取数据的平台。 在本专栏之前的文章中,笔者有详细介绍通过python来解决多种“验证码”(点选验证,图文验证,滑块验证,滑块…