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

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(使用前将#替换为@)

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

  • # 和 ## 的区别

    参考 和 的区别 作者 枕上 发布时间 2021 07 25 08 23 40 网址 https blog csdn net jinchi boke article details 119076280 utm source app app
  • mybatis 中 Example 的使用 :条件查询、排序、分页(三种分页方式 : RowBounds、PageHelpler 、limit )

    前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住分享一下给大家 点击跳转到教程 import tk mybatis mapper entity Example import com github pagehelper Pa
  • Axure Repeater系列---排序

    最新学习整理Repeater 网上也能找到一些实现排序的帖子 但是对于不熟悉中继器的同学来说 直接上手还是有点难度的 我也遇到一些坑 特整理记录下来 共同学习 学习之前最好了解下中继器的各个属性以及函数的含义 工具 Axure8 0 学习目
  • 一不小心就弄懂了 冒泡,选择,插入,希尔,归并和快速排序

    今天我们主要看一些简单的排序 常见的时间复杂度 常数阶 1 对数阶 log2n 线性阶 n 线性对数阶 nlog2n 平方阶 n 立方阶 n K次方阶 n k 指数阶 2 n 常见的时间复杂度对应图 1 log2n n nlog2n n n
  • 记录-常见算法的收集

    1 快速排序 找到基准点的位置 既不浪费空间又可以快一点的排序算法 如 6 1 2 7 9 3 4 5 10 8 这10个数进行排序 首先找到一个数作为基准点 一个参照数 为了方便 让第一个数6作为基准点 然后将这个序列中所有比基准数大的数
  • 王道快速排序和归并排序的完整代码

    这是快排的代码要作为模板背下来 include
  • C基础day6(2023.7.6)

    一 Xmind整理 二 课上练习 练习1 循环嵌套 三个循环结构可以任意嵌套 include
  • 交换和--排序

    LeetCode 面试题 16 21 交换和 给定两个整数数组 请交换一对数值 每个数组中取一个数值 使得两个数组所有元素的和相等 返回一个数组 第一个元素是第一个数组中要交换的元素 第二个元素是第二个数组中要交换的元素 若有多个答案 返回
  • C语言之进制转换

    文章目录 一 基础知识 1 C语言中的进制 2 汇编中的进制 3 常见进制的基数 4 不同进制的输出方式 二 十进制转为其它进制 三 任意进制转为十进制 四 二进制与十六进制的互相转换 1 二进制转为十六进制 2 十六进制转为二进制 五 二
  • 【第01题】A + B

    文章目录 零 写在前面 一 例题1 1 题目描述 2 解题思路 3 代码详解 二 例题2 1 题目描述 2 解题思路 3 代码详解 三 例题3 1 题目描述 2 解题思路 3 代码详解 四 例题4 1 题目描述 2 解题思路 3 代码详解
  • Problem E: C语言习题5.21--算法:汉诺塔

    Problem E C语言习题5 21 算法 汉诺塔 Time Limit 1 Sec Memory Limit 64 MB Description 汉诺塔 又称河内塔 问题是印度的一个古老的传说 开天辟地的神勃拉玛在一个庙里留下了三根金刚
  • 冒泡排序详解(C语言)

    对于刚入门学习编程的新手来说 冒泡排序应该是大家接触的第一个算法 由于刚接触编程不久 新手的思维还没有得到很好的开拓 冒泡排序在一开始对新手来说有些难理解 现在就让我们来看看新手如何更好的来理解冒泡排序算法 冒泡排序的思路 假设数组有n个数
  • 泛型是实体类的集合,根据某一字段排序

    举例 List
  • C语言之自定义函数的实现

    自定义函数的作用 方便管理代码 编写程序时思路清晰 代码复用 同一段代码可以在不同位置多次执行 函数声明 使用 返回值类型 函数名 类型 变量名 类型 变量名 例如 int sum int num1 int num2 实际上 在函数声明时
  • 力扣每日一题——三角形的最大周长

    题目链接 class Solution public int largestPerimeter vector
  • 经典C语言程序设计100例,部分有个人注解

    经典C语言程序设计100例 程序1 题目 有1 2 3 4个数字 能组成多少个互不相同且无重复数字的三位数 都是多少 1 程序分析 可填在百位 十位 个位的数字都是1 2 3 4 组成所有的排列后再去 掉不满足条件的排列 当然这里的去掉并不
  • 编写一个程序,求出满足下列条件的四位数:该数是个完全平方数,且第一、三位数字之和为10,第二、四位数字之积为12

    编写一个程序 求出满足下列条件的四位数 该数是个完全平方数 且第一 三位数字之和为10 第二 四位数字之积为12 include stdio h include math h int main int number int one ten
  • Java常见排序:(三)快速排序

    快速排序是一种非常快的交换排序方法 思路很简单 将待排的数据序列中任意取一个数据作为分界值 所有比这个值小的放在左边 比他大的放在右边 形成左右两个子序列 左边的值都比分界值小 右边的值都比分界大 接下来对左右两个子序列进行递归 两个子序列
  • Java 中Arrays工具类的使用

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 介绍 java util Arrays类即为操作数组的工具类 包含了用来操作数组 比如排序和搜索 的各种算法 下面我用代码给大家演示一下
  • 插入排序超详解释,一看就懂

    目录 一 插入排序的相关概念 1 基本思想 2 基本操作 有序插入 二 插入排序的种类 三 直接插入排序 1 直接插入排序的过程 顺序查找法查找插入位置 2 使用 哨兵 直接插入排序 四 直接插入排序算法描述 五 折半插入排序 1 查找插入

随机推荐

  • 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
  • 冒泡排序--数组的简单排序,从大到小,从小到大

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