数据结构算法学习总结-慕课网(五)冒泡排序,与选择,插入排序的异同(从小到大)

2023-05-16

数据结构算法学习总结-慕课网(五)冒泡排序,与选择,插入排序的异同(从小到大)

1.回顾

上一节讲到了插入排序的优化,了解了插入排序的优势,这一节会讲冒泡排序的实现方式

2.思路

对于{5,4,2}这样的数组,下标从0开始,第一轮,比较5和4,发现4比5小,那么交换两者的位置,数组变成{4,5,2},比较5和2,发现2比5小,交换两者的位置,数组变成{4,2,5},第一轮结束;第二轮,比较4和2,发现2比4小,交换两者位置,数组变成{2,4,5},第三轮不满足条件,排序结束

3.比较异同

相同点

时间复杂度都是O(n^2)

不同点

思路不同

冒泡排序:元素之间最小的元素逐渐往前,呈冒泡的方式,一个一个的传递,直到找到合适的元素最小的位置

选择排序:每轮直接寻找到最小的元素,然后放在合适的位置

插入排序:后一个元素与前一个元素比较,然后是否插入或者插入到合适的位置

4.实战

BubbleSort.cpp

#include <iostream>

#include "SortTestHelper.h"
#include "SelectionSort.h"
using namespace std;


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

5.意见与建议

如果博友有任何问题或者建议,欢迎留言讨论


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

数据结构算法学习总结-慕课网(五)冒泡排序,与选择,插入排序的异同(从小到大) 的相关文章

  • C端产品工作流程

    文章目录 发现需求需求分析用户需求定义产品需求定义构建产品方案收集需求确定产品功能 产品需求分类产品目标分解产品版本规划需求评审产品功能设计需求评审确定执行计划测试验收发布上线 发现需求 通过自身的体验发现需求 通过间接的体验发现需求 1
  • STM32cubeMX将STM32F767+LAN8720+LwIP+FreeRTOS的以太网实现

    通过STM32cubeMX将STM32F767 43 LAN8720 43 LwIP 43 FreeRTOS的以太网实现 本文使用了正点原子的阿波罗开发板 xff0c 接下来我将粗略的对STM32F767通过STM32cubeMX进行以太网
  • 数据产品经理有哪些

    文章目录 数据分析产品经理数据挖掘产品经理策略产品经理数据工程类产品 首先希望大家能重新认识经理这份工作 xff1a 大数据产品经理并不一定要数学能力强或者编程能力强 xff0c 只要你有用数据思考的方式 xff0c 有相信数据的信念 xf
  • 产品经理必备的20个常用工具

    原型设计工具 xff1a Axure 墨刀 思维导图工具 xff1a Xmind MindManager 流程图绘制工具 xff1a Viso ProcessOn 数据处理与分析工具 xff1a Excel Tableau 问卷调研工具 x
  • Hibernate根据实体类自动生成表的方法

    文章目录 第一种方法第二种方法参考 第一种方法 这种方法需要配置 hibernate cfg xml 的属性 hibernate hbm2ddl auto xff0c 该属性值的具体说明如下 xff1a 值说明update实体对应的表如果不
  • 微信账户如何解除对第三方应用的授权

    参考文章 xff1a https baijiahao baidu com s id 61 1754354599985802723 amp wfr 61 spider amp for 61 pc amp searchword 61 E5 B0
  • 进程间通信

    现在的嵌入式系统往往有并发的特征 xff0c 就像多任务操作系统的多进程一样 xff0c 其内核会提供几种机制处理任务间通信 xff0c 本文对四种常见通信模式进行了分析 xff0c 并对其各自的优劣作较细致的比较 目前 xff0c 越来越
  • HTTP请求返回状态码的不同含义

    用户通过 HTTP 访问一台正在运行Internet信息服务的服务器上的内容时 xff0c 会返回一个表示该请求的状态的数字代码 状态代码可以指明具体请求是否已成功 xff0c 还可以揭示请求失败的确切原因 1 信息提示 这些状态代码表示临
  • 异常检测及其分布集成

    异常检测算法种类繁多 xff0c 包括聚类 xff0c 树 xff0c 统计分布 xff0c 机器学习 xff0c 深度学习等多种形式 xff0c 下面对一些常见问题进行了自己的总结 xff1a 1 如何选型 xff1f 主要看算法原理和数
  • 关于FreeRTOS 任务运行中卡死在临界区vPortExitCritical()

    FreeRTOS创建任务正常运行 xff0c 偶尔出现任务卡死状态 xff0c 通过在线调试 xff0c 程序卡在vPortExitCritical 函数中 xff0c 在IAR Call Stack中观察到各任务都可能回调该接口 span
  • Ardupilot添加自定义日志(AP_LOG)

    1 在libraries AP Logger LogStructure h中添加自定义的结构体 span class token keyword struct span span class token class name PACKED
  • Ardupilot 编译Bootloader

    1 清理之前的编译中间文件 xff0c 一定要清理一下 xff0c 能避免很多奇怪的问题 span class token punctuation span span class token operator span waf distcl
  • 基于STM32CUBE的LWIP+FREERTOS+Socket构成的TCP服务器

    本实验基于STM32F767制作 一 实验目的 本实验主要目的是通过Socket网络编程方法完成通过以太网控制两个LED的亮灭的 xff0c 同理可用到继电器上控制其它高电压设备 二 实验步骤 1 首先先生成一个带有LWIP和FreeRTO
  • PX4 ---- Mixer

    文章目录 Mixer 混合控制 作用输入输出装载混控文件MAVROS代码解析总结示例MAINAUX Mixer 混合控制 作用 经过位置控制和姿态控制后 xff0c 控制量通过 actuator controls发布 xff0c 其中 co
  • PX4 ---- Indoor Flight

    文章目录 室内飞行ROS amp PX4Pose Data 飞机配置MAVROS 基于工训赛 VIO 飞行总结 室内飞行 ROS amp PX4 Pose Data 飞机配置 VIO 参考此处 xff0c 采用 T265 配置 相机与飞控机
  • PX4 -- EKF2

    文章目录 EKF2参数高度估计Range Finder滤波 单变量更新单变量更新对多变量的影响 EKF2 参数 EKF2 中有一类 GATE 参数 当测量值在 VAR GATE 范围内才会更新值 高度估计 四种高度控制方法 xff1a 气压
  • opencv4以上版本报错:CV_LOAD_IMAGE_COLOR和CV_BGR2HSV和CV_CAP_PROP_FRAME_WIDTH

    报错关于 xff1a CV LOAD IMAGE COLOR xff0c 加入头文件 span class token preprocessor property include span span class token string 3
  • 【原神】各角色Pixiv涩图统计(一). 最多的是谁? R18涩图谁最多?

    统计的结果请见第一篇文章 代码已经开源至GitHub 本文下面所有的爬虫项目都有详细的配套教程以及源码 xff0c 都已经打包好上传到百度云了 xff0c 链接在文章结尾处 xff01 扫码此处领取大家自行获取即可 讲真 这个应该是我做过的
  • 如何从源码编译SITL

    从源码编译SITL Windows 本作品采用知识共享署名 相同方式共享 3 0 未本地化版本许可协议进行许可 SITL简介和适用情况 SITL 61 Software in the loop xff0c 是著名无人机开源社区ArduPil
  • 使用从源码编译的SITL测试dronekit代码

    使用从源码编译的SITL测试DroneKit代码 本作品采用知识共享署名 相同方式共享 3 0 未本地化版本许可协议进行许可 DroneKit和SITL简述 DroneKit是一款Python语言的无人机开发库 xff0c 可以对使用MAV

随机推荐

  • Keil一进入调试器就退出的解决方法

    Keil一进入调试器就退出的解决方法 本作品采用知识共享署名 相同方式共享 3 0 未本地化版本许可协议进行许可 问题描述 在使用Keil与TI公司的Tiva TM4C123开发板进行开发时 xff0c 偶尔会出现一进入在线调试器 xff0
  • 在ArduPilot旋翼机上安装PX4Flow光流传感器

    在ArduPilot旋翼机上安装PX4Flow光流传感器 本作品采用知识共享署名 相同方式共享 3 0 未本地化版本许可协议进行许可 预先要求 在安装和调试光流传感器之前 xff0c 请先保证 xff1a 旋翼机已经安装 调试完毕 xff0
  • 教程:使用树莓派连接Pixhawk飞控

    教程 xff1a 使用树莓派连接Pixhawk飞控 树莓派可以与Pixhawk飞控相连 xff0c 读取飞控中的状态信息 xff0c 同时对飞控发送指令 树莓派作为一个更高性能的计算平台 xff0c 可以运行图像识别 机器学习 实时路径规划
  • STM32Cube的PWM控制基础篇(一)一路PWM设置

    以下是有关STM32cube的PWM的花式操作 xff0c 大佬们在看下面链接之前建议先看完本博客 xff0c 个人觉得写的比较详细 xff0c 欢迎大佬之指正 xff01 STM32Cube的PWM控制基础篇 xff08 二 xff09
  • MissionPlanner找不到全部参数表(Full Parameter List)的解决方法

    MissionPlanner 找不到全部参数表 xff08 Full Parameter List xff09 的解决方法 ArduPilot是一款强大的开源飞控软件 xff0c 在使用MissionPlanner的高级功能的时候 xff0
  • Pixhawk室内自动控制:参数设置

    Pixhawk室内自动控制 xff1a 参数设置 本文针对使用光流传感器和超声波传感器 xff08 或激光雷达 xff09 的Pixhawk用户 ArduCopter目前 xff08 3 52 xff09 已经能够使用光流传感器提供的位置信
  • Pixhawk室内自动控制:参数设置(SITL)

    Pixhawk室内自动控制 xff1a 参数设置 xff08 SITL xff09 本文针对使用光流传感器和超声波传感器 xff08 或激光雷达 xff09 进行开发 xff0c 期望实现室内自动控制的Pixhawk用户 这篇文章讲解了如何
  • DroneKit教程(一):安装DroneKit和测试工具

    DroneKit教程 xff08 一 xff09 xff1a 安装DroneKit和测试工具 DroneKit Python是一个用于控制无人机的Python库 DroneKit提供了用于控制无人机的API xff0c 其代码独立于飞控 x
  • DroneKit教程(二):控制Pixhawk示例

    DroneKit教程 xff08 二 xff09 xff1a 控制Pixhawk示例 本篇提供了一个简单的示例 xff0c 配以详细的注释说明不同语句的功能 xff0c 希望能给各位一个总体的框架和印象 该示例文件改写自DroneKit的官
  • DroneKit教程(三):连接Pixhawk飞控

    DroneKit教程 xff08 三 xff09 xff1a 连接Pixhawk飞控 DroneKit提供了非常简便的代码 xff0c 可通过多种方式与飞控连接 连接飞控 使用DroneKit中的connect函数 xff0c 可以方便地连
  • DroneKit教程(四):属性和参数的读取与设置

    DroneKit教程 xff08 四 xff09 xff1a 属性和参数的读取与设置 DroneKit内置了无人机的属性和参数 xff0c 使用简单的Python代码即可进行读取和修改 此教程的例子均使用在本地编译完成的SITL进行测试 如
  • DroneKit教程(五):使用自定义MAVLink指令

    DroneKit教程 xff08 五 xff09 xff1a 使用自定义MAVLink指令 DroneKit的实质是通过发送和接受MAVLink消息 xff0c 向飞控发送控制指令 从飞控获取各种状态信息 DroneKit的所有内置功能都是
  • DroneKit教程(六):继承和自定义Vehicle类

    DroneKit教程 xff08 六 xff09 xff1a 继承和自定义Vehicle类 DroneKit的Vehicle类内置了许多基于MAVLink消息的属性数据 xff0c 但同时也有许多属性数据没有被支持 有时 xff0c 为了支
  • DroneKit教程(七):遥控信道覆盖

    DroneKit教程 xff08 七 xff09 xff1a 遥控信道覆盖 MAVLink支持一项有用却又非常危险的功能 xff1a 遥控信道覆盖 xff08 Channel Override xff09 遥控信道覆盖可以将任一至全部通道的
  • STM32Cube的PWM控制基础篇(三)定时器的PWM设置详解

    STM32Cube的PWM控制基础篇 xff08 一 xff09 一路PWM设置 STM32Cube的PWM控制基础篇 xff08 二 xff09 多路占空比不同的PWM 今天是挤牙膏的第三天 xff0c 感觉如果每天都放很多干货的话可能会
  • 教程:使用DroneKit在室内控制无人机

    教程 xff1a 使用DroneKit在室内控制无人机 DroneKit Python是一个用于控制无人机的Python库 DroneKit提供了用于控制无人机的API xff0c 其代码独立于飞控 xff0c 单独运行在机载电脑 xff0
  • OpenCV 3.3+VS2017+Win10环境配置指南

    OpenCV 3 3 43 VS2017 43 Win10环境配置指南 最近开始接触OpenCV xff0c 没想到安装和环境配置又踩了不少坑 一开始本着对官网的信任 xff0c 按着官方tutorial里的步骤走 xff0c 但是怎么样都
  • 朴素贝叶斯算法原理

    朴素贝叶斯算法原理 朴素贝叶斯分类器 xff08 Naive Bayes Classifier xff09 的优点是运算时间短 数学原理清晰 xff0c 我在MNIST和CIFAR 10数据集上测试 xff0c 错误率分别为15 74 和5
  • ubuntu18.04更新源方法

    前言 Ubuntu自带默认的软件源指向的服务器是部署在国外的 xff0c 在国内进行软件下载更新时会非常慢 xff0c 可以通过更改源地址指向国内的镜像数据源 xff0c 比如阿里 网易 清华 中科等等 PS xff1a 因为今天群里有人在
  • 数据结构算法学习总结-慕课网(五)冒泡排序,与选择,插入排序的异同(从小到大)

    数据结构算法学习总结 慕课网 xff08 五 xff09 冒泡排序 xff0c 与选择 xff0c 插入排序的异同 xff08 从小到大 xff09 1 回顾 上一节讲到了插入排序的优化 xff0c 了解了插入排序的优势 xff0c 这一节