排序算法之二:冒泡排序

冒泡排序的思路

冒泡排序是交换排序

基本思想:所谓交换,就是根据序列中两个记录键值的比较结果来对换这两个记录在序列中的位置,交换排序的特点是:将键值较大的记录向序列的尾部移动,键值较小的记录向序列的前部移动。

  • 第一趟:将最大的值排到最后
  • 第二趟:将次大的值排到倒二
  • ......
  • 第n-1趟:将最小的排到第一

冒泡排序动图:https://pic4.zhimg.com/v2-33a947c71ad62b254cab62e5364d2813_b.webp

由于冒泡排序的时候,大的沉地,小的浮上来,所以得名冒泡排序

冒泡排序的特性

  1. 冒泡排序是一种非常容易理解的排序
  2. 时间复杂度:O(N^2)
  3. 空间复杂度:O(1)
  4. 稳定性:稳定

代码示例

void Swap(int* p1, int* p2)
{int tmp = *p1;*p1 = *p2;*p2 = tmp;
}
void BubbleSort(int* a, int n)
{for (int i = 0; i < n; i++){for (int j = 1; j < n - i; j++){if (a[j - 1] > a[j])Swap(&a[j - 1], &a[j]);}}/*for (int i = 0; i < n; i++){for (int j = 0; j < n - 1 - i; j++){if (a[j] > a[j+1])Swap(&a[j], &a[j+1]);}}*/
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/202822.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

判断三角形-第11届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第12讲。 判断三角形&#…

AOC computer monitor

【窗口增亮】关闭就没掉了

Java异常讲解

&#x1f435;本篇文章将对异常相关知识进行讲解 一、异常的结构 在程序执行的过程中出现的一些问题叫做异常&#xff0c;异常其实是一个一个类&#xff0c;每一种异常都代表一个类 1.1 几种常见的异常 System.out.println(10/0); //算数异常 //Exception in thread "m…

LDAP协议和AD活动目录的讲解

目录 LDAP协议 LDAP基本概念 LDAP目录的数据结构 LDAP交互过程以及相关报文 AD&#xff08;Active Directory&#xff09; AD基本概念 AD域与工作组、本地组的区别 AD DS&#xff08;AD域服务&#xff09; 信任关系 组策略和安全组 LDAP协议 LDAP基本概念 LDAP&…

TypeScript:JavaScript的超集,让代码更安全、更可维护

一、介绍 TypeScript是微软开发的一种静态类型检查的JavaScript超集&#xff0c;它在JavaScript的基础上添加了类型系统&#xff0c;使得开发者能够更好地定义变量类型&#xff0c;提高代码的可读性和可维护性。本文将介绍TypeScript的基本概念、优势、使用方法和实践。 二、…

2024年程序员面对经济下行的解决方式竟然是……

近些年大环境不好&#xff0c;经济下行的压力给到了我们每一个普通人的身上&#xff1a;降薪是潮流&#xff0c;裁员是趋势&#xff0c;找不到工作是常态。 在这样的环境下&#xff0c;我们曾一天三份工&#xff0c;只为家人温饱&#xff1b; 我们也曾一周七天连轴转&#xf…

ProEasy机器人:快速上手使用机器人软件与编程(干货满满,好学不费脑)

一、安装机械手软件 如图所示&#xff0c;安装顺序为&#xff1a;先安装第一个&#xff0c;再安装第二个 二、快速认识学习掌握机械手软件重要功能 1.连接机械手 机械手默认出厂的ip为&#xff1a;“192.168.1.1”&#xff0c;在初次连接机械手前&#xff0c;必须把使用连接的…

JVM常用调优参数

针对Java虚拟机&#xff08;JVM&#xff09;的性能调优&#xff0c;有一些常见的调优参数可以用来提高应用程序的性能和稳定性。以下是一些常用的JVM调优参数&#xff1a; 堆内存设置 -Xms&#xff1a;设置JVM初始堆大小-Xmx&#xff1a;设置JVM最大堆大小-Xmn&#xff1a;设…

k8s官方镜像代理加速

背景 大家可能在云原生领域需要部署周边的一些生态组件时&#xff0c;在国内遇到无法正常拉取镜像&#xff0c;显得就有点苦恼&#xff0c;不过没关系&#xff0c;常见的${{ registry_name }} 例如 “gcr.io”&#xff0c;“registry.k8s.io” Failed to pull image “registry…

C# Solidworks二次开发:获取零件的最小包容体方法详解

今天要讲的文章是在Solidworks如何获取零件的最小包容体的方法&#xff0c;这个方法的API如下所示&#xff1a; 获取零件的最小包容体的API为&#xff1a;partDoc.GetPartBox(true); 这个方法中参数为只有一个&#xff0c;是否转换为用户单位;True保留系统单位&#xff0c;fa…

AI Pika 生成进击的巨人动漫分镜案例

背景介绍 Pika 是一个使用 AI 生成和编辑视频的平台。它致力于通过 AI 技术使视频制作变得简单和无障碍。 Pika 1.0 是 Pika 的一个重大产品升级&#xff0c;包含了一个新的 AI 模型,可以在各种风格下生成和编辑视频,如 3D 动画&#xff0c;动漫&#xff0c;卡通和电影风格。…

springboot 整合 Spring Security+JWT 实现token 认证和校验

1.大概是这个样子 JWT 是什么&#xff1f; Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准&#xff08;(RFC 7519).该token被设计为紧凑且安全的&#xff0c;特别适用于分布式站点的单点登录&#xff08;SSO&#xff09;场景。JWT的声明…

k8s 中externalTrafficPolicy应用场景和实践

在Kubernetes&#xff08;K8s&#xff09;中&#xff0c;externalTrafficPolicy 是一个用于控制服务的外部流量的策略。这个字段可以在 Service 的定义中设置&#xff0c;其主要作用是决定服务对外部请求的负载均衡行为。具体来说&#xff0c;externalTrafficPolicy 有两个可选…

【ArcGIS微课1000例】0078:创建点、线、面数据的最小几何边界

本实例为专栏系统文章:讲述在ArcMap10.6中创建点数据最小几何边界(范围),配套案例数据,持续同步更新! 文章目录 一、工具介绍二、实战演练三、注意事项一、工具介绍 创建包含若干面的要素类,用以表示封闭单个输入要素或成组的输入要素指定的最小边界几何。 工具位于:数…

Park Unpark

文章目录 当先调用park时&#xff1a;如果_counter0&#xff0c;这时候该线程阻塞&#xff0c;进入_cond阻塞&#xff0c;之后Unpark设置_counter为1后停止阻塞 当先调用Unpark时&#xff1a;此时先将_counter设置为1&#xff0c;当后面出现park时一判断_counter为1&#xff0c…

IO多路复用(新)

1.前景回顾 无论是阻塞IO还是非阻塞IO&#xff0c;用户应用在一阶段都需要调用recvfrom来获取数据&#xff0c;差别在于无数据时的处理方案&#xff1a; 如果调用recvfrom时&#xff0c;恰好内核没有数据&#xff0c;那么阻塞IO会使用户进程阻塞&#xff0c;非阻塞IO使CPU进行空…

CMMI5大成熟度等级和4大过程域

CMMI&#xff08;Capability Maturity Model Integration&#xff0c;能力成熟度模型集成&#xff09;模型系列是帮助组织改进其过程的最佳实践的集合。这些模型由来自产业界、政府以及软件工程研究所&#xff08;Software Engineering Institute&#xff0c; SEI&#xff09;的…

继承与派生(1)

1.定义继承与派生的原因&#xff1a;类似于现实中的父子关系&#xff0c;子类继承了父类的部分特征&#xff0c;但也有子类自身的一些特征&#xff0c;而继承与派生就是来表示这种关系的 2.继承方式&#xff1a; 多继承&#xff1a;一个派生类有多个基类 单继承&#xff1a;一…

【算法集训】基础数据结构:二、字符串

字符串在C语言中我感觉还是比较难的&#xff0c;主要是C中没有String&#xff0c;只能使用字符数组来创建字符串。这个就有点难受了 第一题 LCR 122. 路径加密 https://leetcode.cn/problems/ti-huan-kong-ge-lcof/description/ 第一题本来是力扣05的一道题&#xff0c;但是变…

c语言经典题目

1.水仙花数 打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身. 例:1531的三次方5的三次方3的三次方. 法1: #include<stdio.h> int main() {int i 0;int j 0;int k 0;for (i 1; i < 10; i)//百位{for (j …