冒泡排序--数组的简单排序,从大到小,从小到大

2023-11-12

冒泡排序 是计算机程序中较为常见和简单的排序算法,它需要重复地走访需要进行排序的元素列,按照一定顺序依次比较两个相邻的元素,如果顺序错误就把他们交换过来。
示意原图如下:
在这里插入图片描述
我们需要的结果示意图如下:
在这里插入图片描述
那我们应该怎么进行程序的编写才能满足这样的结果呢?
你首先会想到用什么方法来进行排序呢?

此刻。你想想,在军训时候,同排队列中是怎么行按照身高高低来进行站队的?是不是每个人和自己相邻的下一位进行比较?冒泡排序就是利用这种方法,只不过军训站队是可以队列中各个相邻的两个人在同时比较,而冒泡排序一般选择从第一位开始,依次进行比较和排序。

**注意:**以数值从小到大排序为例:是第一位和第二位比较,如果第一位的值 > 第二位的值,则交换,如果不大于,则不交换,这个时候需要比较的位次增加 1,各数值并不变化,第二位和第三位比较,如果第二位的值 > 第三位的值 ,则第二位和第三位交换,如果不大于,则不交换,不管比较与否,需要比较的位次都需要自增 1 ,依次类推直到比较完所有元素(遍历完整个都没有发生交换则证明最后一位的值就是最大的)。

比如对下面这个序列进行从小到大排序:
100 40 130 10 60

第一轮
1)100 和 40比,100>40,则它们互换位置
40 100 130 10 60 (第一次发生交换,继续比较)

2)100 和 130 比,100<130,则不用交换位置
没有发生交换,则需要比较的位数增加 1 ,但各位的值并不交换。
依然是:40 100 130 10 60

3)130 和 10 比,130>10,则它们互换位置
40 100 10 130 60 (第二次发生交换,实际上是第三次比较(第二次没有交换),继续比较)

4)130 和 60 比,130>60,则它们互换位置
40 100 10 60 130

到此第一轮就比较完了第一轮的结果是找到了序列中最大的那个数,并浮到了最右边

比较时,每轮中第 n 次比较是新序列中第 n 个元素和第 n+1 个元素的比较(假如 n 从 1 开始)。

第二轮
第一轮比较完状态:40 100 10 60 130

  1. 40 和 100 比,40<100,则不用交换位置。
    40 100 10 60 130

  2. 100 和 10 比,100>10,

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

冒泡排序--数组的简单排序,从大到小,从小到大 的相关文章

  • 常用的前端排序

    冒泡排序 前一个与后一个作比较 如果前一个大于后一个 两者交换位置 对每一对相邻元素做第一步的操作 针对所有的元素重复以上的步骤 除了最后一个 let arr 1 3 4 5 8 6 4 1 3 2 for var i 0 i
  • 集合泛型为对象,根据对象的某个属性进行排序

    根据集合里的深度 排序集合 Collections sort irFldsltpvMList new Comparator 为集合名 为实体类对象 Override public int compare IrFldsltpvM o1 IrF
  • Vector的自动排序Sort

    建立了一个结构体 然后用容器进行存放 想对其进行排序 vector支持sort函数 但是需要自己指定排序函数 方法如下 1 需要包含头文件 include
  • react native 实现拖拽排序

    先上效果图 意思意思 其实原理很简单 没有想的那么难 大家在改造的时候 请注意 this offset 的值 因为它关系到查找目标box的index 原理 手势释放时 所在的坐标值来推算出目标box的Index 本文代码可读性还需要改造 代
  • C语言入门日记

    参考 C语言入门日记 作者 9art0 发布时间 2020 08 30 16 37 46 网址 https blog csdn net GatoWong article details 108307915 spm 1001 2014 300
  • 一不小心就弄懂了 冒泡,选择,插入,希尔,归并和快速排序

    今天我们主要看一些简单的排序 常见的时间复杂度 常数阶 1 对数阶 log2n 线性阶 n 线性对数阶 nlog2n 平方阶 n 立方阶 n K次方阶 n k 指数阶 2 n 常见的时间复杂度对应图 1 log2n n nlog2n n n
  • 顺序表的冒泡排序算法及二分法查找代码实现

    本文主要实现了比较经典的冒泡排序算法 对已经有序或者基本有序的顺序表复杂度大大降低 和二分法查找 各位看官看代码吧 冒泡排序算法及二分法查找 include stdio h typedef struct int key SSTable El
  • C++实现——排序算法总结

    常见的排序算法有 直接插入 希尔 冒泡 快速 选择 堆排序 归并 基数 下面一一分析 并实现 1 冒泡排序 冒泡排序是最简单的排序算法 冒泡排序的基本思想是从后往前 或从前往后 两两比较相邻元素的值 若为逆序 则交换它们 直到序列比较完毕
  • 冒泡排序--数组的简单排序,从大到小,从小到大

    冒泡排序 是计算机程序中较为常见和简单的排序算法 它需要重复地走访需要进行排序的元素列 按照一定顺序依次比较两个相邻的元素 如果顺序错误就把他们交换过来 示意原图如下 我们需要的结果示意图如下 那我们应该怎么进行程序的编写才能满足这样的结果
  • 快速排序c++实现

    思想 用过一趟排序将要排序的数据分割成独立的两部分 其中一部分的所有数据都比另外一部分的所有数据要小 然后再对这两部分重复此步骤 直到整个数组变成有序序列 对一个数组实现一趟快速排序的过程 1 定义两个变量 一个指向数组最前 一个指向最后
  • C++ sort 排序(降序、升序)使用总结

    一 升序 C sort 函数十分方便 可以对内置类型也可对自定义类型进行快速排序 内置类型的使用比较简单 下面主要讨论自定义类型的排序 一般有如下几种使用方法 1 1 重载比较操作符 比如 我们现有一批学生 要根据他们的成绩进行升序排序 成
  • 冒泡排序法

    冒泡排序 冒泡排序的排序过程 N个数最外层的for循环次数为 N 1 次 内层for循环为 N 1 i 次 每一轮凑从第1个数开始对比 每一次都是和它下一个元素对比 将最大值元素放到最后 其他元素向前移位 重复以上动作 知道N 1次循环全部
  • C语言之自定义函数的实现

    自定义函数的作用 方便管理代码 编写程序时思路清晰 代码复用 同一段代码可以在不同位置多次执行 函数声明 使用 返回值类型 函数名 类型 变量名 类型 变量名 例如 int sum int num1 int num2 实际上 在函数声明时
  • SmartRefreshLayout 嵌套reycleview 长按排序下拉刷新

    布局文件
  • 桶排序、计数排序、基数排序 -- 大数据排序,线性排序以及应用场景

    桶排序 桶排序其实就是把数据分到各个桶中 比如把100个数据到10个桶中 然后每个桶再进行排序比如快排 桶和桶之间也是有顺序的 桶排序是线性排序 也就是时间复杂度为O n 假设数据有 n 个 把它们均匀地划分到 m 个桶内 每个桶里就有 k
  • 经典C语言程序设计100例,部分有个人注解

    经典C语言程序设计100例 程序1 题目 有1 2 3 4个数字 能组成多少个互不相同且无重复数字的三位数 都是多少 1 程序分析 可填在百位 十位 个位的数字都是1 2 3 4 组成所有的排列后再去 掉不满足条件的排列 当然这里的去掉并不
  • 四种排序:选择,插入,冒泡,快速排序原理及其对应的时间、空间复杂度解析

    四种排序 选择 插入 冒泡 快速排序原理及其对应的时间空间复杂度 首先 在了解四种排序之前 让我们来了解一下什么是时间复杂度和空间复杂度 时间复杂度 算法的时间复杂度是一个函数 它定性描述该算法的运行时间 记做T n 直白的来说 就是指运行
  • c语言实例--ip地址形式输出

    问题 输入一个32位的二进制的数 每8位转化为一个十进制的书 将其转化为十进制的ip地址 思路先行 第一步 总体思路 输入二进制数 然后每八个为一个小单位分开 形成一个对应的十进制数 最终形成四个ip数 第二步 分别定义存放ip的数组 存放
  • Navicat导入Excel数据顺序变了

    项目场景 Navicat导入Excel数据 问题描述 从Excel表格中导入数据到数据库中 但是 在导入的过程中 我们常会发现数据顺序出现了问题 导致数据错位 给数据的处理带来了极大的麻烦 原因分析 这个问题的出现是由于数据库的默认排序规则
  • 详解qsort函数的使用及模拟实现qsort函数

    目录 引言 1 qsort函数简介 qsort函数原型 函数参数介绍 比较函数 compar 的编写 补充 void 类型的指针 2 qsort函数示例 2 1对int类型排序 2 2对char类型排序 2 3对浮点型排序 2 4对结构体类

随机推荐

  • JavaFX 程序退出时结束子线程

    1 前言 在JavaFX的程序开发中 在调用子线程之后子线程还未结束时 我们点击应用程序右上角的关闭按钮的时候 我们会发现程序还没有真正的结束运行 这是因为我们的子线程没有在JavaFX的管理之下 2 如何关闭 在主方法中找到Stage类
  • 机器学习数据集_机器学习数据集的选择

    机器学习数据集 Before you is an article guide to open data sets for machine learning In it I for a start will collect a selecti
  • 会话列表

    java实现 题目描述 小云正在参与开发一个即时聊天工具 他负责其中的会话列表部分 会话列表为显示为一个从上到下的多行控件 其中每一行表示一个会话 每一个会话都可以以一个唯一正整数id表示 当用户在一个会话中发送或接收信息时 如果该会话已经
  • Wifi模块—源码分析Wifi热点扫描2(Android P)

    一 前言 这次接着讲Wifi工程流程中的Wifi热点扫描过程部分的获取扫描结果的过程 也是Wifi扫描过程的延续 可以先看前面Wifi扫描的分析过程 Wifi模块 源码分析Wifi热点扫描 Android P 二 图示调用流程 这次的调用流
  • 【华为OD机试真题2023B卷 JS】勾股数元组

    华为OD2023 B卷 机试题库全覆盖 刷题指南点这里 勾股数元组 知识点编程基础 时间限制 1s 空间限制 256MB 限定语言 不限 题目描述 如果3个正整数 a b c 满足a2 b2 c2的关系 则称 a b c 为勾股数 著名的勾
  • 【华为OD】最多几个直角三角形_全组合求解

    目录 一 题目描述 二 输入描述 三 输出描述 3 1 描述 四 题目解析 五 Java玩法 六 JavaScript玩法 一 题目描述 有 N 条线段 长度分别为 a 1 a n 现要求你计算这 N 条线段最多可以组合成几个直角三角形 每
  • Java中内部类详解(类的五成员之五:内部类)

    目录 友情提醒 概述 Java类的五成员之五 内部类 一 内部类 1 成员内部类 2 方法内部类 3 匿名内部类 4 静态内部类 二 匿名内部类与Lambda表达式 友情提醒 先看文章目录 大致了解知识点结构 直接点击文章目录可以跳转到文章
  • Git 如何优雅地回退代码

    前言 从接触编程就开始使用 Git 进行代码管理 先是自己玩 Github 又在工作中使用 Gitlab 虽然使用时间挺长 可是也只进行一些常用操作 如推拉代码 提交 合并等 更复杂的操作没有使用过 看过的教程也逐渐淡忘了 有些对不起 Li
  • 测试开发工程师的简历和面试准备

    文章目录 职业规划 核心事项 不必等待准备 完美 才投简历 准备简历 确定一批目标公司和目标职位 详细事项 可以慢慢完备 时间有限 注意结合所需 简历 简历命名 邮件标题同理 携带个人信息 优先使用pdf格式的简历 最好打印大小是A4 简历
  • WINAPI WinMain

    include
  • 为什么每个程序执行都有内核地址空间和程序地址空间?

    为什么每个用户态的程序映射到虚拟地址空间 都需要有内核地址空间和程序地址空间呢 因为程序地址空间最终都会调用系统调用 也就是内核的东东 所以每个程序要想执行 就必须有内核地址空间 也必须有程序地址空间 所用的application程序要想使
  • 11 种加密 & 哈希算法的原理及其 Java 实现

    11 种加密 哈希算法的原理及其 Java 实现 一 目的 二 运行环境 三 基本原理及步骤 I 各种加密算法的原理 DES 数据加密标准 Data Encryption Standard 算法介绍 算法流程 优点 缺点 破解方式 适用场景
  • Linux期末考试题库(超全)

    文章目录 Linux期末考试题库 选择题 填空题 简答题 操作题 Linux期末考试题库 选择题 在创建Linux分区时 一定要创建 D 两个分区 A FAT NTFS B FAT SWAP C NTFS SWAP D SWAP 根分区 在
  • react样式处理

    react样式处理有两种处理方式 行内样式处理 使用className来定义类名 使用行内样式处理 语法 lt 元素 style css属性1 值1 css属性2 值2 gt 用法 引入react核心包 import React from
  • 完全免费快速搭建个人www服务器

    想拥有自己的web服务器吗 想把服务器放到自己家里吗 通过ADSL拨号也能建立个人的服务器吗 本文告诉你答案 要建立自己的web服务器 需要两个最重要的工作 1 让别人知道你的主机 目前访问Internet上主机的方式主要有两种 一是通过I
  • [JAVAee]SpringBoot配置文件

    配置文件的介绍 配置文件当中记录了许多重要的配置信息 例如 数据库的连接信息 用户的账户与密码 项目的启动端口 第三方系统的调用密匙 用于记录问题产生的日志 在spring框架中一些特定的框架会自动调用配置文件中的配置信息来运用 配置文件中
  • KCF论文技术路线

    https blog csdn net crazyice521 article details 53525366 http www cnblogs com YiXiaoZhou p 5925019 html 一 算法介绍 KCF全称为Ker
  • 搭建高可用mongodb集群(三)—— 深入副本集内部机制

    在上一篇文章 搭建高可用mongodb集群 二 副本集 介绍了副本集的配置 这篇文章深入研究一下副本集的内部机制 还是带着副本集的问题来看吧 副本集故障转移 主节点是如何选举的 能否手动干涉下架某一台主节点 官方说副本集数量最好是奇数 为什
  • 微信小程序中获取用户信息getUserInfo替换方案

    场景说明 我们在开发过程中 如果使用getUserInfo获取用户头像和昵称等用户信息时 会出现如下报错 in promise MiniProgramError errMsg getUserInfo fail scope unauthori
  • 冒泡排序--数组的简单排序,从大到小,从小到大

    冒泡排序 是计算机程序中较为常见和简单的排序算法 它需要重复地走访需要进行排序的元素列 按照一定顺序依次比较两个相邻的元素 如果顺序错误就把他们交换过来 示意原图如下 我们需要的结果示意图如下 那我们应该怎么进行程序的编写才能满足这样的结果