常见的排序算法,复杂度
- 稳定 / 非稳定排序:两个相等的数 排序前后 相对位置不变。
- 插入排序(希尔排序):
- 每一趟将一个待排序记录,按其关键字的大小插入到已排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。稳定,O(n),O(1)。
- 把记录按下标增量(模)分组,对每组进行直接插入排序,每次排序后减小增量,当增量减至 1 时排序完毕。不稳定,不知道(有个实验结论),O(1)。
- 冒泡排序:
- 比较相邻的元素,如果第一个比第二个大就进行交换,对每一对相邻元素做同样的工作。稳定,O(n),O(1)。
- 选择排序:
- 每次在未排序序列中找到最小元素,和未排序序列的第一个元素交换位置,再在剩余未排序序列中重复该操作,直到所有元素排序完毕。不稳定,O(n),O(1)。
- 桶排序:
- 将数组分到有限数量的桶里(比如按照十进制最高位,分到10个桶里),每个桶分别排序(可能使用别的排序算法,也可能递归桶排序),然后把排序好的桶连接起来。
- 稳定。桶数量 = 数据量时,O(N),O(N)。桶数量 = 2,完全递归桶排序,O(NlogN),O(N)。
- 归并排序:
- 将待排序序列分成两部分,先对两部分 分别递归排序,然后进行合并。稳定,O(nlogn),O(n)。
- 堆排序:
- 堆是一种完全二叉树,最大值堆:子节点均小于父节点,最小值堆:子节点均大于父节点。
- 插入:放在完全二叉树最后一点,一直往上升。
- 删除:取出根节点,最后一点升顶,往下降。
- 不稳定,O(nlogn),O(1)(树状数组)。
- 快速排序:
- 随机选择一个基准元素,通过一趟遍历 将要排序的数据分割成两部分,一部分全部小于等于基准元素,一部分全部大于等于基准元素,继续对两部分递归快排。不稳定,O(nlogn),O(1)。
- 最优:每一次选基准元素都恰好选到中位数,⼆叉树的层数(logn)即为递归需要进⾏的次数,并且每轮递归结束时,都将⼆叉树遍历了⼀遍(n),O(nlogn)。
- 最差:数组完全倒序,每次都选到最大的作基准,O(n^2)。
相关文章:
常见的排序算法,复杂度
稳定 / 非稳定排序:两个相等的数 排序前后 相对位置不变。插入排序(希尔排序): 每一趟将一个待排序记录,按其关键字的大小插入到已排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。稳定&…...
鸿蒙特色物联网实训室
一、 引言 在当今这个万物皆可连网的时代,物联网(IoT)正以前所未有的速度改变着我们的生活和工作方式。它如同一座桥梁,将实体世界与虚拟空间紧密相连,让数据成为驱动决策和创新的关键力量。随着物联网技术的不断成熟…...
JVM垃圾回收-----垃圾分类
一、垃圾分类定义 垃圾分类是JVM垃圾分类中的第一步,这一步将堆中的对象分为存活对象和垃圾对象两类。 在垃圾分类阶段,JVM会从一组根对象开始,通过对象之间的引用关系,遍历所有的对象,并将所有存活的对象进行标记。…...
前端基础之JavaScript学习——变量、数据类型、类型转换
大家好,我是来自CSDN的博主PleaSure乐事,今天我们开始有关JS的学习,希望有所帮助并巩固有关前端的知识。 我使用的编译器为vscode,浏览器使用为谷歌浏览器,使用webstorm或其他环境效果几乎一样,使用系统自…...
SQL常用数据过滤---IN操作符
在SQL中,IN操作符常用于过滤数据,允许在WHERE子句中指定多个可能的值。如果列中的值匹配IN操作符后面括号中的任何一个值,那么该行就会被选中。 以下是使用IN操作符的基本语法: SELECT column1, column2, ... FROM table_name WH…...
HDFS和FDFS
HDFS(Hadoop Distributed File System)和FDFS(FastDFS)是两种不同的分布式文件系统,它们各自有不同的设计目标和使用场景。以下是对它们的详细介绍: HDFS(Hadoop Distributed File System&…...
Flutter对接FlutterBugly 报错Zone mismatch
在Flutter对接FutterBlugy时报如下错误: Unhandled Exception: Zone mismatch. E/flutter ( 1292): The Flutter bindings were initialized in a different zone than is now being used. This will likely cause confusion and bugs...
Docker缩小镜像体积与搭建LNMP架构
镜像加速地址 {"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live"] } daemon.json 配置文件里面 bip 配置项中可以配置docker 的网段 {"graph": "/data/docker", #数据目录࿰…...
六边形动态特效404单页HTML源码
源码介绍 动态悬浮的六边形,旁边404文字以及跳转按钮,整体看着像科技二次元画风,页面简约美观,可以做网站错误页或者丢失页面,将下面的代码放到空白的HTML里面,然后上传到服务器里面,设置好重定向即可 效果预览 完整源码 <!DOCTYPE html> <html><head…...
BGP路径属性
路径属性分类 1. 公认属性(所有 BGP 路由器都能识别) (1) 公认必遵 a) AS path b)Origin c) Next hop (2) 公认任意 a) local preference b)atomic aggregate 2. 可选属性(…...
从零开始学量化~Ptrade使用教程(六)——盘后定价交易、港股通与债券通用质押式回购
盘后固定价交易 实现科创板、创业板的盘后固定价交易,界面如下显示: 交易 输入科创板或创业板代码,选择委托方向,输入委托价格、委托数量,点击“买入”或“卖出”按钮进行委托。可出现一个委托提示框提示是否继续委托操…...
Docker 三剑客
文章目录 Docker 三剑客1. Docker Engine功能与特点:工作原理:示例命令: 2. Docker Compose功能与特点:工作原理:示例文件 (docker-compose.yml):示例命令: 3. Docker Swarm功能与特点ÿ…...
每天一个数据分析题(四百三十一)- 卡方检验
在列联表分析中,下列不能用卡方检验的是() A. 多个构成的比较 B. 多个率的比较 C. 多个均值的比较 D. 以上都不是 数据分析认证考试介绍:点击进入 题目来源于CDA模拟题库 点击此处获取答案 数据分析专项练习题库 内容涵盖…...
Flowable-流程图标与流程演示
BPMN 2.0是业务流程建模符号2.0的缩写。它由Business Process Management Initiative这个非营利协会创建并不断发展。作为一种标识,BPMN 2.0是使用一些符号来明确业务流程设计流程图的一整套符号规范,它能增进业务建模时的沟通效率。目前BPMN2.0是最新的…...
MyBatis源码中的设计模式2
组合模式的应用 组合模式介绍 组合模式(Composite Pattern) 的定义是:将对象组合成树形结构以表示整体和部分的层次结构。组合模式可以让用户统一对待单个对象和对象的组合。 比如:Windows操作系统中的目录结构,通过tree命令实现树形结构展…...
AI发展中的伦理挑战与应对策略
AI发展中的伦理挑战与应对策略 人工智能(AI)的快速发展在为社会带来许多便利和创新的同时,也带来了诸多伦理挑战。这些挑战主要集中在数据隐私侵犯、信息茧房的制造、歧视性算法、深度伪造技术等方面。针对这些问题,需要从多个层…...
基于用户非兴趣/非偏好/非习惯的推荐
基于用户非兴趣、非偏好、非习惯的推荐是一种个性化推荐技术,旨在为用户提供与其日常行为和兴趣模式不同的推荐内容。这种推荐方法的目的是打破用户的信息过滤和习惯,发现新的、潜在的兴趣点,从而提供更广泛和多样化的推荐结果。 通过收集和分…...
Abaqus基于CT断层扫描的三维重建插件CT2Model 3D
插件介绍 AbyssFish CT2Model 3D V1.0 插件可将采用X射线等方法获取的计算机断层扫描(CT)图像在Abaqus有限元软件内进行三维重建,进而高效获取可供模拟分析的有限元模型。插件可用于医学影像三维重构、混凝土细观三维重建、岩心数字化等领域…...
Mindspore框架CycleGAN模型实现图像风格迁移|(三)损失函数计算
Mindspore框架:CycleGAN模型实现图像风格迁移算法 Mindspore框架CycleGAN模型实现图像风格迁移|(一)CycleGAN神经网络模型构建 Mindspore框架CycleGAN模型实现图像风格迁移|(二)实例数据集(苹果2橘子&…...
ENSP中VLAN的设置
VLAN的详细介绍 VLAN(Virtual Local Area Network)即虚拟局域网,是一种将一个物理的局域网在逻辑上划分成多个广播域的技术。 以下是关于 VLAN 的一些详细介绍: 一、基本概念 1. 作用: - 隔离广播域:…...
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
三分算法与DeepSeek辅助证明是单峰函数
前置 单峰函数有唯一的最大值,最大值左侧的数值严格单调递增,最大值右侧的数值严格单调递减。 单谷函数有唯一的最小值,最小值左侧的数值严格单调递减,最小值右侧的数值严格单调递增。 三分的本质 三分和二分一样都是通过不断缩…...
R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
git: early EOF
macOS报错: Initialized empty Git repository in /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/ remote: Enumerating objects: 2691797, done. remote: Counting objects: 100% (1760/1760), done. remote: Compressing objects: 100% (636/636…...
Xela矩阵三轴触觉传感器的工作原理解析与应用场景
Xela矩阵三轴触觉传感器通过先进技术模拟人类触觉感知,帮助设备实现精确的力测量与位移监测。其核心功能基于磁性三维力测量与空间位移测量,能够捕捉多维触觉信息。该传感器的设计不仅提升了触觉感知的精度,还为机器人、医疗设备和制造业的智…...
k8s从入门到放弃之HPA控制器
k8s从入门到放弃之HPA控制器 Kubernetes中的Horizontal Pod Autoscaler (HPA)控制器是一种用于自动扩展部署、副本集或复制控制器中Pod数量的机制。它可以根据观察到的CPU利用率(或其他自定义指标)来调整这些对象的规模,从而帮助应用程序在负…...
