数据结构 | 排序

插入排序


直接插入排序(空间复杂度为1,排序后稳定)

思路:

       在待排序的元素中,假设前n-1个元素已有序,现将第n个元素插入到前面已经排好的序列中,使得前n个元素有序。按照此法对所有元素进行插入,直到整个序列有序。
  但我们并不能确定待排元素中究竟哪一部分是有序的,所以我们一开始只能认为第一个元素是有序的,依次将其后面的元素插入到这个有序序列中来,直到整个序列有序为止。

时间复杂度:最坏情况下为O(N*N),此时待排序列为逆序,或者说接近逆序
      最好情况下为O(N),此时待排序列为升序,或者说接近升序。
空间复杂度:O(1)
 


 

折半查找(数列应该有顺序)

   时间复杂度(减少比较次数,而记录移动的次数不变)


 

希尔排序(缩小增量法)

6a4a4f23473840099fa384988cc48faf.jpg


交换排序 


 

冒泡排序

62ad7010ad544b5998676069b74d8ad7.jpg


 

 快速排序


选择排序


 

直接选择排序


 

归并排序

动图演示:


 

 

基数排序

总结 


 

2874927162074500abeba6c97e9354b8.jpg

时间及空间复杂度

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

NX二次开发UF_MTX3_copy 函数介绍

文章作者:里海 来源网站:https://blog.csdn.net/WangPaiFeiXingYuan UF_MTX3_copy Defined in: uf_mtx.h void UF_MTX3_copy(const double mtx_src [ 9 ] , double mtx_dst [ 9 ] ) overview 概述 Copies the matrix elements from a source 3x3 mat…

生命科学领域 - 新药从研发到上市全流程

新药是指新研制的、临床尚未应用的药物,其化学本质应为新的化合物或称新化学实体、 新 分子实体、新活性实体。新药研发的根本目的是治疗疑难危重疾病,研制出来的药物即使是全新的化学结构,但是疗效或安全性却不及现有的药物便失去新药价值&a…

Unity性能优化技巧篇

资源导入优化 随着项目越来越大,资源越来越多,有一套资源导入自动化设置很有必要,它不但可以减少你的工作量,也能更好的统一管理资源,保证资源的导入设置最优,还不会出错。 AssetPostprocessor 在Unity中…

万字+28张图带你探秘小而美的规则引擎框架LiteFlow

大家好,今天给大家介绍一款轻量、快速、稳定可编排的组件式规则引擎框架LiteFlow。 一、LiteFlow的介绍 前言 在每个公司的系统中,总有一些拥有复杂业务逻辑的系统,这些系统承载着核心业务逻辑,几乎每个需求都和这些核心业务有关&…

【Java】IDEA 基本操作

0.IDEA 0.1 IDEA中的层级结构 0.1.1 结构分类 project(项目、工程)module(模块)package(包)class(类) 0.1.2 结构介绍 project(项目、工程) ​ 淘宝、京…

CANdelaStudio 中 Bese Variant 和 Variant区别

关于 Bese Variant ,其在 CDDT 和 CDD 文件中都存在,有且只有一个 主要包含三部分,重点只关注 DIDs 和 Supported Diagnostic Classes 而在 CDD 文件中,除了 Bese Variant 外,还有一个 Variant “Variant” 这个概…

微服务--01--简介、服务拆分原则

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 微服务微服务架构,是服务化思想指导下的一套最佳实践架构方案。服务化,就是把单体架构中的功能模块拆分为多个独立项目。 单体架构微服务架构…

Unity Meta Quest 一体机开发(八):实现 Hand Grab 扔物体功能

文章目录 📕教程说明📕设置刚体和碰撞体📕给物体添加 Physics Grabbable 脚本📕给手部添加 Hand Velocity Calculator 物体 此教程相关的详细教案,文档,思维导图和工程文件会放入 Seed XR 社区。这是一个高…

二叉树前序、中序以及后序遍历(递归展开图)

目录 1.二叉树前置说明 2.前序遍历 2.1函数实现 2.2递归展开图 3.中序遍历 3.1函数实现 3.2递归展开图 4.后序遍历 4.1函数实现 4.2递归展开图 1.二叉树前置说明 在学习二叉树的基本操作前,需先要创建一棵二叉树,然后才能学习其相关的基本操作…

如何通过信息化为燃气管道提供数据监控、智能的调度和作业技术?

关键词:智慧燃气、燃气监控、智慧管网、智慧燃气管网、智慧燃气管网解决方案、城市燃气管网 在信息化迅猛发展的历史潮流中,如何通过信息化为燃气管道提供更广泛的数据监控、更紧密的数据集成、更智能的调度和作业、更智慧的分析和决策,为安…

干法制程中的辉光放电

在芯片制程中,几乎所有的干法制程,如PVD,CVD,干法刻蚀等,都逃不过辉光放电现象。辉光放电,是一种在低压下电离气体的过程,它在半导体制程中的许多重要步骤中有着核心作用。那您知道什么是“启辉”吗&#x…

UE4/UE5 c++绘制编辑器场景直方图(源码包含场景中的像素获取、菜单添加ToolBar)

UE4/UE5 c场景直方图 UE4/UE5 C绘制编辑器场景直方图绘制原理:元素绘制坐标轴绘制 源码处理 UE4/UE5 C绘制编辑器场景直方图 注:源码包含场景中的像素获取、菜单添加ToolBar 实现效果: 这个是用于美术统计场景中像素元素分布,类…

【100个Cocos实例】编码不规范,接手泪两行...

点击上方亿元程序员关注和★星标。 引言 规范编码,从文件头部注释规范做起。 头部注释规范是一种在代码文件开头添加注释信息的做法,通常用于描述文件的基本信息、作者、创建日期、修改历史等。 这有助于团队成员更好地理解和维护代码。 本文将介绍一…

JVM执行引擎

目录 (一)执行引擎概述 (二)Java代码编译和执行过程 (三)机器码,指令,汇编语言,字节码 1、机器码 2、指令 3、指令集 4、汇编 5、字节码 (四&#x…

一、Oceanbase基础

一、集群相关概念 集群:整个分布式数据库。Region:表示区域,是地域的逻辑概念,如1个城市,1个集群可以有多个Region,用于跨城市远 距离容灾。Zone:表示分区,是机房或机架的逻辑概念…

深度学习【二】

1.运行时错误 1.1 ModuleNotFoundError: No module named ‘torch_scatter’ 参考 https://blog.csdn.net/weixin_42421914/article/details/132875571 pip install --no-index torch-scatter -f https://pytorch-geometric.com/whl/torch-1.13.1%2Bcpu.html

某思路等考通一级MSOffice的分析

看到有朋友寻求2021版的等级考试一级软件,秉承授人以鱼不如授人以渔的理念,特写这个帖子。 某思路等考通一级MSOffice,版本6.5。 用到的软件,ScanId,de4dot,dnSpy。 第一步:分析 软件启动后有在线激活提示&…

华为云CDN刷新与查询余量的Go实现及在Jenkins中的部署

引言 在华为云上,对CDN缓存内容进行刷新是一个常见的需求,以确保最新的内容能尽快被用户访问到。通过使用Go语言,我们可以开发一个自动化的工具来实现这一需求,并将其集成到Jenkins中以实现持续部署。下面我们将分步骤讲解如何实…

MySQL递归查询:洞悉数据的层层关联

在处理关系型数据库时,我们经常会遇到这样的情况:某些数据之间存在层级关系,例如目录、组织结构、评论等。在这些场景下,我们需要一种灵活的查询技术来处理这种层级关系。今天我们就来探讨MySQL中的递归查询,体验其独特…

ThinkPHP6学生选课管理系统

有需要请加文章底部Q哦 可远程调试 ThinkPHP6学生选课管理系统 一 介绍 此学生选课管理系统基于ThinkPHP6框架开发,数据库mysql8,前端bootstrap。系统角色分为学生,教师和管理员。学生登录后可进行选课,教师登录后可查看选课情况…