超简单理解冒泡排序
1.冒泡排序(Bubble Sort)
较简单排序算法。
它会遍历若干次要排列的数列,每次遍历,会从前往后比较相邻两个数的大小。
如果前者比后者大,就交换他们位置。遍历一次最大元素在数列末尾。重复直到数列有序。
那么遍历需要一个变量控制范围。一个变量需要在这个范围里控制相邻元素进行比较。将最大的数作为有序数,在进行下一趟
比较就把它"踢出"遍历范围。如此一来,每个"它"都是作为"它"那次遍历的最大数,最后实现有序。
#include<stdio.h>
swap(int* x,int* y)
{int temp;temp = *x;*x = *y;*y = temp;
}
void bubble_sort(int* a, int n)
{int i, j;int flag;for (i = n - 1; i > 0; i--){flag = 0;//标志for (j = 0; j < i; j++){if (a[j] > a[j + 1]){swap(&a[j], &a[j + 1]);flag = 1;//交换,标志设为1}}if (flag == 0){break;//没发生交换,已有序}}
}
void main()
{int str[] = {2,3,4,10,9,8,7,6,5,1};int zf = sizeof(str) / sizeof(str[0]);bubble_sort( str, zf);int i;for (i = 0; i < zf; i++){printf("%3d",str[i]);}
}
2.冒泡排序的时间复杂度和稳定性
2.1冒泡排序的时间复杂度是O(n^2)。
排序算法中有两个for循环。
每个for循环的次数都是n。用数组下标表示范围就是(0,9)
2.2冒泡排序稳定性
它稳定,满足稳定算法定义。
算法稳定性:假设数列中存在a[i]=a[j];若在排序之前,a[i]在a[j]之前,排序后,a[i]还在a[j]之前,那这个算法就是稳定的!
相关文章:
超简单理解冒泡排序
1.冒泡排序(Bubble Sort) 较简单排序算法。 它会遍历若干次要排列的数列,每次遍历,会从前往后比较相邻两个数的大小。 如果前者比后者大,就交换他们位置。遍历一次最大元素在数列末尾。重复直到数列有序。 那么遍历需要一个变量控制范围。…...
模拟IC设计工程师成长日记
很多IC设计的新人,不知道进入IC设计行业后会有哪些成长和学习的地方。 很多初入IC设计职场的人也都会比较恐慌,成长进步需要一个时间和经验的积累 今天给大家找了一个叫“模拟IC设计“攻城狮”的成长日记供大家参考. 以模拟IC设计工程师的身份进入职场&a…...
修炼k8s+flink+hdfs+dlink(六:学习namespace,service)
一:什么是namespace? 你可以认为namespaces是你kubernetes集群中的虚拟化集群。在一个Kubernetes集群中可以拥有多个命名空间,它们在逻辑上彼此隔离。 他们可以为您和您的团队提供组织,安全甚至性能方面的帮助! 二&a…...
法语导游就业前景如何?
随着国际交流的日益频繁,旅游业正在迅猛发展。尽管全球讲法语的人数并不算多,但讲法语的国家分布广泛。因此,如何成为一名合法的法语导游,以及法语导游的就业前景如何,成为了法语爱好者比较关注的问题。 我们知道&…...
iOS自动混淆测试处理笔记
1 打开 ipa,导出ipa 路径和配置文件路径会自动填充 2 点击 开始自动混淆测试处理 自动混淆测试是针对 oc 类和oc方法这两个模块进行自动混淆ipa,并ipa安装到设备中运行,通过检测运行ipa包是否崩溃,来对oc类和oc方法进行筛选。如果…...
C51--单片机中断
51单片机是单线程模式,需要用到硬件中断。 一、中断系统 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。 当中央处理器CPU正在处理某件事的时候,外界发生了紧急事件请求,要求CPU暂停当前工作,转而去处理这个紧急…...
Linux中关于glibc包导致的服务器死机或者linux命令无法使用的情况
glibc是gnu发布的libc库,即c运行库。glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX …...
艾泊宇产品战略:华为手机品牌是如何从低端到高端的
华为在过去一直以几百块钱的低端手机为主,但如今已经可以跟苹果一争高下。 这个转变是华为经过了近二十年的艰苦努力才实现的。 我艾泊宇作为一个亲历者深度研究了华为的成长历程,发现这是一个经典的商业教科书案例。 这里面有很多值得今天中国企业学…...
视频批量AI智剪:提升剪辑效率的秘密方法
随着视频内容的爆炸式增长,剪辑师面临着巨大的工作压力。传统的剪辑方法往往效率低下,无法满足快速、高质量的剪辑需求。为了解决这个问题,视频批量AI智剪技术应运而生,成为提升剪辑效率的秘密方法。 视频批量AI智剪是指利用人工…...
linux环境执行jar脚本
一、前言 平常工作中,我们的开发的项目部署到linux环境,以jar包的方式运行,涉及jar包的启动、停止、查看状态等,我们可以通过脚本的方式进行维护,减少自己敲打一长串的命令少敲一个字母或者多敲一个字母,方…...
特权同学FPGA官方全资料包括电子书下载
特权同学FPGA官方全资料包括电子书下载 特权同学倾情奉献海量FPGA学习资料 链接:http://pan.baidu.com/s/1bptgnKF 下载器安装说明 链接:http://pan.baidu.com/s/1dFNXvrV SF-AT7 USB3.0+LVDS+FPGA开发套件 链接:http://pan.baidu.com/s/1c24bVZa SF-HSC USB3.0+LVDS…...
《动手学深度学习 Pytorch版》 10.4 Bahdanau注意力
10.4.1 模型 Bahdanau 等人提出了一个没有严格单向对齐限制的可微注意力模型。在预测词元时,如果不是所有输入词元都相关,模型将仅对齐(或参与)输入序列中与当前预测相关的部分。这是通过将上下文变量视为注意力集中的输出来实现…...
iOS_Crash 四:的捕获和防护
文章目录 1.Crash 捕获1.2.NSException1.2.C异常1.3.Mach异常1.4.Unix 信号 2.Crash 防护2.1.方法未实现2.2.KVC 导致 crash2.3.KVO 导致 crash2.4.集合类导致 crash2.5.其他需要注意场景: 1.Crash 捕获 根据 Crash 的不同来源,分为以下三类:…...
spring boot项目运行jar包读取包内resources目录下的文件
spring boot项目运行jar包读取包内resources目录下的文件 摘要码代码相关文章 摘要 Spring Boot 项目打包成 jar 包后,resources 目录下的文件将会被打包到 jar 包中。如果需要在 Spring Boot 项目运行 jar 包后读取 resources 目录下的文件,可以使用 t…...
浙大陈越何钦铭数据结构06-图1 列出连通集
题目 给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。 输入格式: 输入第1行给出2个整数N(0<N≤10)和E&…...
C# Winform编程(9)网络编程
网络编程 HTTP网络编程IPAddress IP地址类WebClient类WebRequest类和WebResponse类 WebBrowser网页浏览器控件TCP网络编程TcpClient类TcpListener类NetworkStream类Socket类 HTTP网络编程 IPAddress IP地址类 IPAddress类代表IP地址,可在十进制表示法和实际的整数…...
RabbitMQ中方法channel.basicAck的使用说明
方法channel.basicAck的作用 在RabbitMQ中,channel.basicAck方法用于确认已经接收并处理了消息。 方法的参数说明 public void basicAck(long deliveryTag,boolean multiple) 参数: long deliveryTag 消息的唯一标识。每条消息都有自己的ID号&#x…...
Jenkins+Python自动化测试持续集成详细教程
Jenkins安装 Jenkins安装 Jenkins是一个开源的软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。由于是基于java开发因此它也依赖java环境&…...
Lightroom学习之路
基础知识 常用快捷键 双击修改图片下右边布局的属性,快速回到初始值 B站学习笔记 1、导入到图库为图片标星级,后期优先处理星级高的图片 2、修改照片-基础-白平衡有吸管吸颜色会自动平衡照片颜色 3、直方图左右上角三角形,选中后照片会显示…...
Day 2 Abp框架下,MySQL数据迁移时,添加表和字段注释
后端采用Abp框架,当前最新版本是7.4.0。 数据库使用MySQL,在执行数据库迁移时,写在Domain层的Entity类上的注释通通都没有,这样查看数据库字段的含义时,就需要对照代码来看,有些不方便。今天专门来解决这个…...
NLP实战入门:从理论到代码,手把手构建命名实体识别系统
1. 命名实体识别:从概念到应用场景 第一次接触命名实体识别(NER)时,我盯着论文里的术语发懵——BIO标注、序列标注、条件随机场...这些概念就像一堵高墙。直到有天处理新闻数据时,需要自动提取人名、地名,才真正明白它的价值。简单…...
解决Lumerical(FDTD)中lumapi模块导入失败的完整指南
1. 为什么会出现lumapi导入失败的问题 第一次遇到import lumapi报错的时候,我也是一头雾水。明明按照官方文档安装了Lumerical软件和lumopt扩展包,怎么Python就找不到这个模块呢?后来经过多次实践和排查,发现这个问题在Windows系统…...
从工业控制到智能家居:手把手教你根据项目需求选对RTOS(ThreadX vs. FreeRTOS实战指南)
从工业控制到智能家居:手把手教你根据项目需求选对RTOS(ThreadX vs. FreeRTOS实战指南) 在嵌入式系统开发中,选择合适的实时操作系统(RTOS)往往决定了项目的成败。面对工业控制的高精度需求或智能家居的成本…...
OpenDrop用户画像分析:揭秘不同用户群体的文件传输习惯与使用场景
OpenDrop用户画像分析:揭秘不同用户群体的文件传输习惯与使用场景 【免费下载链接】opendrop An open Apple AirDrop implementation written in Python 项目地址: https://gitcode.com/gh_mirrors/op/opendrop OpenDrop是一个开源Apple AirDrop实现…...
Python flask django框架的社区残障人士服务平台的设计与实现
目录同行可拿货,招校园代理 ,本人源头供货商功能模块设计用户管理模块服务匹配模块无障碍交互模块社区支持模块数据安全与后台管理技术实现要点Flask/Django选型对比数据库设计关键API示例(Django)无障碍前端适配部署与扩展项目技术支持源码获取详细视频…...
Qwen3-TTS-12Hz-1.7B-Base快速部署:基于Jupyter+Gradio的极简开发环境搭建
Qwen3-TTS-12Hz-1.7B-Base快速部署:基于JupyterGradio的极简开发环境搭建 本文介绍如何在JupyterGradio环境中快速部署Qwen3-TTS-12Hz-1.7B-Base语音合成模型,无需复杂配置,10分钟即可实现声音克隆和语音生成功能。 1. 环境准备与快速部署 1…...
5分钟掌握ArchivePasswordTestTool:轻松找回遗忘的压缩包密码
5分钟掌握ArchivePasswordTestTool:轻松找回遗忘的压缩包密码 【免费下载链接】ArchivePasswordTestTool 利用7zip测试压缩包的功能 对加密压缩包进行自动化测试密码 项目地址: https://gitcode.com/gh_mirrors/ar/ArchivePasswordTestTool 你是否曾遇到过这…...
G-Helper终极指南:5分钟快速掌握华硕笔记本高效控制
G-Helper终极指南:5分钟快速掌握华硕笔记本高效控制 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar…...
MiniCPM-o-4.5-nvidia-FlagOS学术写作助手:LaTeX公式与论文排版智能辅助
MiniCPM-o-4.5-nvidia-FlagOS学术写作助手:LaTeX公式与论文排版智能辅助 写论文,尤其是理工科的论文,最头疼的是什么?十有八九的科研人员和学生会告诉你:是LaTeX公式和排版。一个复杂的公式,代码敲半天&am…...
RMBG-2.0镜像安全加固:非root用户运行、网络隔离、资源限制配置指南
RMBG-2.2镜像安全加固:非root用户运行、网络隔离、资源限制配置指南 在AI应用快速部署的今天,我们往往更关注模型的效果和速度,而忽略了运行环境的安全性。想象一下,你精心部署了一个图像处理服务,结果因为一个简单的…...
