数据结构之插入排序

news2024/11/29 10:31:37

插入排序

在这里插入图片描述

一种思想我们所在指向位是需要进行插入的数据
我们锁指向位置前的数据是被插入的数据组
我们根据与前面的数据元素一个个比较来确定插入位置的排序
比如现在的76比前面的97小,97进行一个右移,就是赋值给data[4](我这里猜测是76应该是赋给一个变量了),然后在与65比较比65大
所以76插入到65和97中间
关于最后的49,只把比关键值大的值右移一位
所以最开始在7位置上的49最后应该在4位置
在这里插入图片描述

算法实现

一般是这种
在这里插入图片描述
带哨兵模式
在这里插入图片描述
就是把temp变为data[0]实际元素从data[1]开始存储

效率分析

空间复杂度 O(1)
在这里插入图片描述
时间复杂度
主要是来自对比关键字和移动元素导致的时间复杂度
在这里插入图片描述
最好的情况在这里插入图片描述
最坏的情况(一般就写这个)
在这里插入图片描述
在这里插入图片描述

优化-折半插入排序

就是之前的对比
用的顺序查找,但是其实我们指向元素前的元素
已经是一个有序的数列了,所以可以使用折半查找进行对比

在这里插入图片描述
在这里插入图片描述
把[low,i-1]元素右移
然后[low]=[0] (哨兵模式下)

相等的情况-不会停止查找
在这里插入图片描述

在这里插入图片描述
在右半区间查找使low=mid+1
在这里插入图片描述

在这里插入图片描述
和之前处理一样low右边右移
[mid]=[0]

小结

在这里插入图片描述

代码实现

在这里插入图片描述

总结

在这里插入图片描述

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

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

相关文章

QT 介绍

QT 介绍 Qt是一个跨平台的 C 开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序,当然也可以开发不带界面的命令行(Command User Interface,CUI)程序。且完全面向对…

项目实战——匹配系统(上)

ps:从这篇文章开始,整个项目最精华(困难)的部分就要来了,因此这里会把每一个步骤细分,并且说一下自己对于每个步骤的思考和理解(博主水平有限,错误在所难免,欢迎指出讨论…

MyBatis-Plus(第一篇开山篇)

MyBatis-Plus(第一篇开山篇) 目录MyBatis-Plus(第一篇开山篇)结论:使用mybatis plus步骤1.导包2.整合(修改spring-dao配置文件)3.使用3.1 javaBean3.2 mapper层3.3 service层3.3.1 service接口3.3.2 service实现类3.4 …

【MEF:深度感知增强(细节增强:色彩映增强)】

Multi-exposure image fusion via deep perceptual enhancement (基于深度感知增强的多曝光图像融合) 多曝光图像融合 (MEF) 是通过将具有不同曝光的多个镜头集成在一起来解决此问题的有效方法,这在本质上是一个增强问题。在融合过程中&…

IDEA最实用的设置

​ 目录 全局设置 全局设置 选择 Configure->settings进入设置界面 1.设置主题 2.设置编码区的字体及大小 3.设置控制台的字体及大小 4.修改编码方式 解决有时我们在导入项目时,代码中的中文注释变成乱码问题。 5.设置按住Ctrl鼠标滚轮改变字体大小 6.设置…

Java基础深化和提高 ---- 函数式编程 Lambda

Lambda表达式介绍 Lambda简介 Lambda 表达式是 JDK8 的一个新特性,可以取代大部分的匿名内 部类,写出更优雅的 Java 代码,尤其在集合的遍历和其他集合操作 中,可以极大地优化代码结构。 在Java语言中,可以为变量赋予一…

计算机网络-传输层(TCP可靠传输(校验,序号,确认,重传),TCP流量控制,TCP拥塞控制(慢开始,拥塞避免)(快重传,快恢复))

文章目录1. TCP可靠传输2. TCP流量控制3. TCP拥塞控制1. TCP可靠传输 网络层:提供尽最大努力交付,不可靠传输。 传输层:使用TCP实现可靠传输 可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的。 TCP可…

redis 哨兵

哨兵可以帮助我们解决主从架构中的单点故障问题 哨兵的配置: 新建目录:usr/local/docker/redis/sen/ docker-compose.yml文件如下 version: "3.1" services:redis1:image: daocloud.io/library/redis:5.0.7restart: alwayscontainer_name: …

STL技巧大赏

STL技巧大赏 map insertinsertinsert 不允许有重复的键值的,如果新插入的键值与原有的键值重复则插入无效beginbeginbeginendendendclearclearclear 清除所有countcountcount 某个元素出现次数lower/upperboundlower/upper boundlower/upperbound set 比 mapmapm…

半导体新能源智能装备上位机工业软件设计方案

一、什么是上位机软件 如果说PLC是工业控制的小脑,那么上位机软件就是其大脑。在概念上,控制者和提供服务者是上位机,被控制者和被服务者是下位机,上位机往往是数字信号的处理和命令的下发,下位机往往是模拟量的处理和…

【Linux】初识系统调用进程状态

文章目录1. 什么是系统调用1.1 通过系统调用获取进程标示符通过其他方式查看PIDTopPS使用PID1.2 通过系统调用创建进程-fork初识2. 进程状态看看Linux内核源代码怎么定义查看状态Z(zombie)-僵尸进程僵尸进程危害孤儿进程1. 什么是系统调用 在linux中,系统调用是指操…

[附源码]java毕业设计校园志愿者服务管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Node_exporter主机探针部署

部署需求分析 使用ansible批量部署node-exporter监控客户端 node-exporter解压安装目录为home 添加至Linux服务重新加载,启动模块并设置开机启动 测试环境(centos 7——3.10.0-1160.el7.x86_64)运行成功 因为部署步骤较少,单个pla…

主从延迟读写不一致解决方案分析

具体业务场景方案分析 问题背景: 虽然强制走写库,避免了主从延迟带来的读库数据不一致问题,但是增加了写库的QPS,带来了巨大压力,所以通过限流来保护db,但这样会降低QPS。 业务上暂时不清楚,所…

[附源码]java毕业设计校园新闻管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

转铁蛋白修饰脂质体定制,Transferrin-Liposome

人转铁蛋白(Human Transferrin)主要在肝脏合成,是由位于同源N-端和C-端的两个叶片(Lobe)组成的一种单链糖蛋白。人转铁蛋白共含678个氨基酸残基,等电点为5.9、分子量为76kD。每分子的转铁蛋白能携带2个三价…

Mybatsi从入门到精通、从精通到卸载,这一篇就足够了【中篇】

资料下载 链接: https://pan.baidu.com/s/1i_D3hSkMElUyxBC0OJqRRg?pwdthg4提取码: thg4 简介 MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简…

深度学习入门(四十七)计算机视觉——SSD和YOLO简介

深度学习入门(四十七)计算机视觉——SSD和YOLO简介前言计算机视觉——SSD和YOLO简介课件(单发多框检测SSD)生成锚框SSD模型效果总结课件(YOLO)YOLO(你只看一次)效果前言 核心内容来…

nvm的下载,安装与使用详解

一、安装nodejs方式有很多种 第一种:官网下载  通过nodejs官网下载安装 ,但有个缺陷,不同版本的nodejs无法顺利的切换。 第二种: NVM安装  NVM可以帮助我们快速切换 node版本。 二、 下载nvm安装包 官方下载地址:http://​ h…

力扣(LeetCode)41. 缺失的第一个正数(C++)

类计数排序 小于 111 ,大于 nnn 的数,不会对答案造成影响。所以只要考虑 1——n1——n1——n 的数。 由于题目要求 O(1)O(1)O(1) 空间,参考计数排序思想,利用原数组 numsnumsnums 存储 1——n1——n1——n ,需要将 1…