当前位置: 首页 > news >正文

几种常用排序算法

1 基本概念

排序是处理数据的一种最常见的操作,所谓排序就是将数据按某字段规律排列,所谓的字段就是数据节点的其中一个属性。比如一个班级的学生,其字段就有学号、姓名、班级、分数等等,我们既可以针对学号排序,也可以针对分数排序。

  • 稳定性 在一组无序数据中,若两个待排序字段一致的数据,在排序前后相对位置不变,则称排序算法是稳定的,否则是不稳定的。(应该是原先有序的在排序中会不会出现改变)

  • 内排序与外排序 如果待排序数据量不大,可以一次性全部装进内存进行处理,则称为内排序,若数据量大到无法一次性全部装进内存,而需要将数据暂存外存,分批次读入内存进行处理,则称为外排序。

2 选择排序

遍历两层,复杂度较高

3 插入排序

减少队列和构建新的队列,新的队列插入算法可以优化。

4 希尔排序

插入排序的升级版,一开始分成几组,每组内部排序,逐步减少分组数量。

5 冒泡排序

复杂度比选择排序好一些

6 快速排序

几个做法:

两端往中间走:在l>k>r时交换;

挖坑移树法:也是两端往中间走,将Key位腾出来,存放L和R碰到的大和小的数据,

前后指针(交换小的在前):如图,重点讲,是前面两种做法的进化版,目前也是用的比较多的。

思路:

大原则(跟前面一样):用一个Key来分割所有数据成为“<K<”,然后继续前后分别递归继续;

分割时:用一个cur游标,从头找到尾,找出小的数据放到“后面队列”,用一个Prev(后面队列的车头)来推动大的数据将cur发现的小数交换到后面。

相关文章:

几种常用排序算法

1 基本概念 排序是处理数据的一种最常见的操作&#xff0c;所谓排序就是将数据按某字段规律排列&#xff0c;所谓的字段就是数据节点的其中一个属性。比如一个班级的学生&#xff0c;其字段就有学号、姓名、班级、分数等等&#xff0c;我们既可以针对学号排序&#xff0c;也可…...

Spring3(代理模式 Spring1案例补充 Aop 面试题)

一、代理模式 在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能&#xff0c;这种类型的设计模式属于结构型模式。 代理模式通过引入一个代理对象来控制对原对象的访问。代理对象在客户端和目标对象之间充当中介&#xff0c;负责将客户端…...

Github报错:Kex_exchange_identification: Connection closed by remote host

文章目录 1. 背景介绍2. 排查和解决方案 1. 背景介绍 Github提交或者拉取代码时&#xff0c;报错如下&#xff1a; Kex_exchange_identification: Connection closed by remote host fatal: Could not read from remote repository.Please make sure you have the correct ac…...

LabVIEW在CRIO中串口通讯数据异常问题

排查与解决步骤 检查硬件连接&#xff1a; 确保CRIO的串口模块正确连接&#xff0c;并且电缆无损坏。 确认串口模块在CRIO中被正确识别和配置。 验证串口配置&#xff1a; 在LabVIEW项目中&#xff0c;检查CRIO目标下的串口配置&#xff0c;确保波特率、数据位、停止位和校验…...

ALTERA芯片解密FPGA、CPLD、PLD芯片解密解密

‌Altera是世界一流的FPGA、CPLD和ASIC半导体生产商&#xff0c;所提供的解决方案与传统DSP、ASSP和ASIC解决方案相比&#xff0c;缩短了产品面市时间&#xff0c;提高了性能和效能&#xff0c;降低了系统成本。针对Altera芯片解密&#xff0c;益臻芯片解密中心经过多年的芯片解…...

[RK3588-Android12] 关于如何取消usb-typec的pd充电功能

问题描述 RK3588取消usb-typec的pd充电功能 解决方案&#xff1a; 在dts中fusb302节点下usb_con: connector子节点下添加如下熟悉&#xff1a; 打上如下2个补丁 diff --git a/drivers/usb/typec/tcpm/tcpm.c b/drivers/usb/typec/tcpm/tcpm.c index c8a4e57c9f9b..173f8cb7…...

分布式 I/O 系统 BL200 Modbus TCP 耦合器

BL200 耦合器是一个数据采集和控制系统&#xff0c;基于强大的 32 位微处理器设计&#xff0c;采用 Linux 操作系统&#xff0c;支持 Modbus 协议&#xff0c;可以快速接入现场 PLC、SCADA 以及 ERP 系统&#xff0c; 内置逻辑控制、边缘计算应用&#xff0c;适用于 IIoT 和工业…...

Java面试题--JVM大厂篇之Serial GC在JVM中有哪些优点和局限性

目录 引言: 正文&#xff1a; 一、Serial GC概述 二、Serial GC的优点 三、Serial GC的局限性 结束语: 引言: 在Java虚拟机&#xff08;JVM&#xff09;中&#xff0c;垃圾收集器&#xff08;Garbage Collector, GC&#xff09;是关键组件之一&#xff0c;负责自动管理内…...

【人工智能】机器学习 -- 贝叶斯分类器

目录 一、使用Python开发工具&#xff0c;运行对iris数据进行分类的例子程序NaiveBayes.py&#xff0c;熟悉sklearn机器实习开源库。 1. NaiveBayes.py 2. 运行结果 二、登录https://archive-beta.ics.uci.edu/ 三、使用sklearn机器学习开源库&#xff0c;使用贝叶斯分类器…...

深入理解 React 的 useSyncExternalStore Hook

深入理解 React 的 useSyncExternalStore Hook 大家好&#xff0c;今天我们来聊聊 React 18 引入的一个新 Hook&#xff1a;useSyncExternalStore。这个 Hook 主要用于与外部存储同步状态&#xff0c;特别是在需要确保状态一致性的场景下非常有用。本文将深入探讨这个 Hook 的…...

河南萌新联赛2024第(一)场:河南农业大学

C-有大家喜欢的零食吗_河南萌新联赛2024第&#xff08;一&#xff09;场&#xff1a;河南农业大学 (nowcoder.com) 思路:匈牙利算法的板子题. 二部图 int n; vector<int> vct[505]; int match[505],vis[505]; bool dfs(int s){for(auto v:vct[s]){if(vis[v]) continue;…...

K8S 上部署 Emqx

文章目录 安装方式一&#xff1a;1. 快速部署一个简单的 EMQX 集群&#xff1a;2. 部署一个持久化的 EMQX 集群&#xff1a;3. 部署 EMQX Edge 集群和 EMQX 企业版集群&#xff1a; 安装方式二&#xff1a;定制化部署1. 使用 Pod 直接部署 EMQX Broker2. 使用 Deoloyment 部署 …...

[React]利用Webcomponent封装React组件

[React]利用Webcomponent封装React组件 为什么这么做 我个人认为&#xff0c;最重要的点是可以很方便地跨框架挂载和卸载wc元素&#xff08;至少我在项目里是这么玩的&#xff09;&#xff0c;此外&#xff0c;基于wc的css沙箱以及它的shadowRoot机制&#xff0c;可以提供一套…...

Linux C服务需要在A服务和B服务都启动成功后才能启动

需求 C服务需要在A服务和B服务都启动成功后才能启动 服务编号服务名服务Anginx.service服务Bmashang.service服务Credis.service 实验 如果您想要 redis.service 在 nginx.service 和 mashang.service 都成功启动后才能启动&#xff0c;那么需要在 redis.service 的服务单元…...

VSCODE 下 openocd Jlink 的配置笔记

title: VSCODE 下 openocd Jlink 的配置笔记 tags: STM32HalCubemax 文章目录 内容VSCODE 下 openocd Jlink 的配置笔记安装完成后修改jlink的配置文件然后修改你的下载器为jlink烧录你的项目绝对会出现下面的问题那么打开下载的第一个软件 &#xff08;点到这个jlink右键&…...

JVM--HostSpot算法细节实现

1.根节点枚举 定义&#xff1a; 我们以可达性分析算法中从GC Roots 集合找引用链这个操作作为介绍虚拟机高效实现的第一个例 子。固定可作为GC Roots 的节点主要在全局性的引用&#xff08;例如常量或类静态属性&#xff09;与执行上下文&#xff08;例如 栈帧中的本地变量表&a…...

【Unity实战100例】Unity声音可视化多种显示效果

目录 一、技术背景 二、界面搭建 三、 实现 UIAudioVisualizer 基类 四、实现 AudioSampler 类 五、实现 IAudioSample 接口 六、实现MusicAudioVisualizer 七、实现 MicrophoneAudioManager 类 八、实现 MicrophoneAudioVisualizer 类 九、源码下载 Unity声音可视化四…...

[Cesium for Supermap] 加载3dTiles,点击获取属性

代码&#xff1a; // 设为椭球var obj [6378137.0, 6378137.0, 6356752.3142451793];Cesium.Ellipsoid.WGS84 Object.freeze(new Cesium.Ellipsoid(obj[0], obj[1], obj[2]));var viewer new Cesium.Viewer(cesiumContainer);var scene viewer.scenescene.lightSource.ambi…...

【stm32项目】基于stm32智能宠物喂养(完整工程资料源码)

基于STM32宠物喂养系统 前言&#xff1a; 随着人们生活幸福指数的提高&#xff0c;越来越多的家庭选择养宠物来为生活增添乐趣。然而&#xff0c;由于工作等原因&#xff0c;许多主人无法及时为宠物提供充足的食物与水。为了解决这一问题&#xff0c;我设计了一款便捷的宠物喂…...

选择Maya进行3D动画制作与渲染的理由

如果你对3D动画充满热情并追求成为专业3D动画师的梦想&#xff0c;你一定听说过Maya——近年来3D动画的行业标准。Maya被3D艺术家广泛使用&#xff0c;你是否想知道为什么Maya总是他们的首选&#xff1f;下面一起来了解下。 一、什么是Maya&#xff1f; 由Autodesk开发的Maya是…...

nlp_structbert_sentence-similarity_chinese-large保姆级教程:前端React界面二次开发与定制化UI集成指南

nlp_structbert_sentence-similarity_chinese-large保姆级教程&#xff1a;前端React界面二次开发与定制化UI集成指南 1. 引言&#xff1a;为什么需要定制化UI&#xff1f; 如果你已经体验过基于StructBERT-Large的语义相似度工具&#xff0c;可能会发现它的基础界面虽然功能…...

SDMatte Web界面实操手册:从上传到下载透明PNG的完整步骤

SDMatte Web界面实操手册&#xff1a;从上传到下载透明PNG的完整步骤 1. 认识SDMatte&#xff1a;你的智能抠图助手 SDMatte是一款专为高质量图像抠图设计的AI工具&#xff0c;它能帮你轻松完成各种复杂的抠图任务。想象一下&#xff0c;你拍了一张漂亮的玻璃杯照片&#xff…...

赶考状元AI学伴的优势是什么:不止于解题,更在于育人

在当今教育数字化战略行动深入推进的背景下&#xff0c;AI与教育的融合已成为发展新质生产力的重要实践。从国家层面看&#xff0c;教育数字化转型正引领着建设教育强国的方向&#xff0c;而AI教育应用也从课程试点逐步走向普及。在这一宏大趋势中&#xff0c;赶考状元AI学伴脱…...

飞书文档全流程备份终极方案:从手动操作到自动化管理的完美转型

飞书文档全流程备份终极方案&#xff1a;从手动操作到自动化管理的完美转型 【免费下载链接】feishu-doc-export 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 价值定位&#xff1a;破解企业文档管理的三大核心痛点 &#x1f4ca; 在数字化办公日益…...

ArcGIS模型构建器实战:一键加载上百个SHP文件(含子文件夹)的保姆级教程

ArcGIS模型构建器实战&#xff1a;一键加载上百个SHP文件&#xff08;含子文件夹&#xff09;的保姆级教程 当你在城市规划部门接手一个历史遗留项目&#xff0c;或是从不同合作方收到几十个分散的SHP文件时&#xff0c;是否经历过这样的崩溃瞬间&#xff1f;每个文件夹挨个点开…...

Phi-4-Reasoning-Vision多场景落地:法律合同截图关键条款识别与逻辑校验

Phi-4-Reasoning-Vision多场景落地&#xff1a;法律合同截图关键条款识别与逻辑校验 1. 项目背景与价值 在法律服务领域&#xff0c;合同审核是耗时且容易出错的关键环节。传统人工审核方式面临两大挑战&#xff1a; 效率瓶颈&#xff1a;律师平均需要30分钟审核一份10页合同…...

有源和无源

目录&#xff1a; 一、有源和无源 1、描述 2、电路实例 二、接点 1、干接点与湿接点 2、硬接点与软接点 一、有源与无源 1、概述 所谓有源就是指内部含有需要电源才能实现预期功能的元器件(或电路)&#xff1b; 所谓无源就是不需要电源供电&#xff0c;自身就有相应功能…...

HunyuanVideo-Foley镜像解析:xFormers视频推理加速在音效生成中的复用机制

HunyuanVideo-Foley镜像解析&#xff1a;xFormers视频推理加速在音效生成中的复用机制 1. 镜像概述与核心价值 HunyuanVideo-Foley镜像是一款专为视频与音效生成任务优化的私有部署解决方案。基于RTX 4090D 24GB显存和CUDA 12.4深度调优&#xff0c;该镜像将视频生成与Foley音…...

浅谈项目运行时,jvm是如何工作的

最近研究了一下项目运行时&#xff0c;jvm是如何工作的&#xff0c;按照自己的理解画的图&#xff0c;一块复习一下有不对的地方&#xff0c;欢迎大家一块讨论...

【大模型学习】常见AI工作流框架组合

常见AI工作流框架组合**一、框架组合全景图****二、各组合深度分析****1. LangChain LangGraph&#xff08;大模型工程师首选&#xff09;****技术架构****实现复杂度****优缺点****推荐场景****2. LlamaIndex Flowise&#xff08;低代码RAG快速落地&#xff09;****技术架构…...