排序算法之冒泡排序篇

news/2024/11/27 10:06:56/

在这里插入图片描述

冒泡排序的思想:

是一个把元素从小到大排的一个算法思想

相邻的两个元素两两比较,大的那一个元素向后移,小的那个元素向前移

核心逻辑:

比较所有相邻的两个项,如果第一个比第二个大,就交换它们

从头开始:
第一轮排序时:每相邻的两个元素进行比较,
让大的元素排在后面,
让小的元素排在前面,
第一轮排序之后就让最大的元素排在了最后面,

一共要进行n-1轮的排序,即如果一共有n个元素,那么就要进行n-1轮的排序

视频实现冒泡排序

文字描述如上,以下是冒泡排序的视频全过程

冒泡排序全过程

代码实现冒泡排序

接下来我们进行代码的实现
用一个方法来实现这个冒泡排序

public static void bubble(int[] arr){//外层循环的是一共要比较循环多少遍,即要进行多少轮的排序for(int i = 0;i < arr.length-1; i++){//内层循环的是每一轮循环一共要比较多少次for(int j = 0; i <arr.length -i-1; j++){if(arr[j] > arr[j+1]){//如果第一个元素大于第二个就交换int temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;}}}
}

时间复杂度分析:

最好情况:
O(N):最好情况之下,数组完全是有序的,但是冒泡排序仍然需要进行一次循环

最坏情况:
O(N^2):最坏情况之下,数组是完全逆序的,冒泡排序需要进行(n-1)次循环


http://www.ppmy.cn/news/1550318.html

相关文章

数字图像处理(6):除法运算、除法器

&#xff08;1&#xff09;当除数是常数时&#xff0c;可以先转化为乘法&#xff0c;再右移&#xff0c;乘法的N越大&#xff0c;计算误差越小。 如&#xff1a;计算x/122&#xff0c;可以看成&#xff08;x * 67&#xff09;>>13,N13,使用verilog实现&#xff1a; reg …

浅谈人工智能之基于容器云进行文生视频大模型搭建

浅谈人工智能之基于容器云进行文生视频大模型搭建 引言 随着深度学习技术的不断发展&#xff0c;文生视频&#xff08;Text-to-video&#xff09;大模型成为了计算机视觉和自然语言处理领域的一个研究热点。文生视频模型可以根据输入的文本描述生成高质量的视频&#xff0c;广…

Springboot自带注解@Scheduled实现定时任务

基于Scheduled注解实现简单定时任务 原理 Spring Boot 提供了Scheduled注解&#xff0c;通过在方法上添加此注解&#xff0c;可以方便地将方法配置为定时任务。在应用启动时&#xff0c;Spring 会自动扫描带有Scheduled注解的方法&#xff0c;并根据注解中的参数来确定任务的…

c++:面向对象三大特性--继承

面向对象三大特性--继承 一、继承的概念及定义&#xff08;一&#xff09;概念&#xff08;二&#xff09;继承格式1、继承方式2、格式写法3、派生类继承后访问方式的变化 &#xff08;三&#xff09;普通类继承&#xff08;四&#xff09;类模板继承 二、基类和派生类的转换&a…

(五)Ubuntu22.04+Stable-Diffusion-webui AI绘画 模型转换插件安装及其使用

一、说明 这是秋叶大佬开发的一个模型转换插件&#xff0c;秋叶整合包中自带。如果你的 Stable Diffusion WebUI 中没有这个插件&#xff0c;请使用下面这个地址安装&#xff0c;安装完成之后别忘了重启 WebUI。 模型转换插件 https://github.com/Akegarasu/sd-webui-model-c…

深度神经网络模型压缩学习笔记二:离线量化算法和工具、实现原理和细节

文章目录 一、离线量化基础概念二、离线量化难点三、离线量化算法介绍四、离线量化工具介绍五、离线量化工具整体设计结构六、离线量化工具代码解读七、实践&#xff1a;Dipoorlet量化MobileNet 一、离线量化基础概念 二、离线量化难点 三、离线量化算法介绍 四、离线量化工…

低速接口项目之串口Uart开发(二)——FIFO实现串口数据的收发回环测试

本节目录 一、设计思路 二、loop环回模块 三、仿真模块 四、仿真验证 五、上板验证 六、往期文章链接本节内容 一、设计思路 串口数据的收发回环测试&#xff0c;最简单的硬件测试是把Tx和Rx连接在一起&#xff0c;然后上位机进行发送和接收测试&#xff0c;但是需要考虑到串…

PyQt5:Python GUI开发的超级英雄

PyQt5&#xff1a;Python GUI开发的超级英雄 &#x1f680; 引言&#xff1a; 你是否厌倦了编写枯燥的命令行程序&#xff1f;想要让你的Python项目拥有炫酷的用户界面吗&#xff1f;今天&#xff0c;我们就来聊聊Python GUI开发的超级英雄——PyQt5&#xff01;&#x1f31f;…