直接插入排序

ops/2025/2/19 9:53:08/

一:直接插入排序是什么。

二:如何实现直接插入排序

三:直接插入排序时间复杂度

一:直接插入排序它是排序得一种,其目的无非是将乱序通过排序排成有序的。

我们可以通过动画直观看什么是直接插入排序

这是我找的直接插入排序的动画,大家务必观看,有助于理解直接插入排序

【插入排序动画演示】

https://www.bilibili.com/video/BV1er4y1b7o4?vd_source=82192e4b91182780b22eaffdea08406c

二:实现直接插入排序

这里我是利用画图,来模拟实现直接插入排序

我在这描述一下直接插入排序如何实现:比如一共有6个无序的数,给他进行直接插入排序。

它是先让end从左到右遍历(用下标i控制),tmp存储end+1(end后面一个的值)。如果end对应的值大于tmp,就把end的值挪到tmp位置。然后让end--(end位置往前挪一位),然后让tmp挪到end+1的位置(end挪动之前的位置)。然后i++,让end遍历,走到第二个位置,让end的下一个位置上的数给给tmp,在和end的值比较,tmp小于end,end的值往后挪,然后让tmp再和第一个位置的数比,tmp小于它,第一个再往后挪,否则第一个数不动,接着让tmp挪到第一个或者第二个位置上。end遍历到第三个数,end和它后面一个数比较,大于end往后挪,end的前面的数依次和tmp比,大了往后挪,否则数字位置不动。再就是一直重复以上过程直至end取到第五个数结束(因为end取第六个数,后面没有数字给它排序的了)。

提炼:直接插入排序是让当前的数x跟它的下一个数tmp比较,x大,x往后挪一位呗。然后是再让

tmp依次和x之前的数比,tmp小,x之前的数往后挪,否则该数的位置不动。

下头是代码

测试一下


http://www.ppmy.cn/ops/157023.html

相关文章

人工智能入门 数学基础 线性代数 笔记

必备的数学知识是理解人工智能不可或缺的要素,今天的种种人工智能技术归根到底都建立在数学模型之上,而这些数学模型又都离不开线性代数(linear algebra)的理论框架。 线性代数的核心意义:世间万事万物都可以被抽象成某…

人工智能D* Lite 算法-动态障碍物处理、多步预测和启发式函数优化

在智能驾驶领域,D* Lite 算法是一种高效的动态路径规划算法,适用于处理环境变化时的路径重规划问题。以下将为你展示 D* Lite 算法的高级用法,包含动态障碍物处理、多步预测和启发式函数优化等方面的代码实现。 代码实现 import heapq impo…

深度学习-102-RAG技术之基于langchain模块构建的检索增强生成RAG系统

文章目录 1 RAG1.1 RAG的工作流程1.2 RAG的组成2 langchain中的模块2.1 Load文档加载器2.2 Transform文档转换器2.2.1 CharacterTextSplitter2.2.2 RecursiveCharacterTextSplitter2.3 Embed文本嵌入模型2.3.1 自定义SemanticEmbedding2.3.2 OllamaEmbeddings2.4 Store向量存储…

开源流程引擎对比:compileflow、Turbo、Warm-Flow、 flowable、activiti

文章目录 开源流程引擎对比I 工作流引擎阿里的Compileflowflowableactivitiwarm-flow(国产)Turbo (didiopensource)II 知识扩展开发流程开源流程引擎对比 ActivitiCamundaCompileflowturbo核心表量282205特性 中断可重入√√√支持回滚√√运行模式独立运行和内嵌独立运行和…

快速在wsl上部署学习使用c++轻量化服务器-学习笔记

知乎上推荐的Tinywebserver这个服务器,快速部署搭建,学习c服务器开发 仓库地址 githubhttps://link.zhihu.com/?targethttps%3A//github.com/qinguoyi/TinyWebServerhttps://link.zhihu.com/?targethttps%3A//github.com/qinguoyi/TinyWebServer 在…

macOs安装docker且在docker上部署nginx+php

一 环境 系统:macOS Sonoma 14.6芯片:Apple M3docker 版本:27.2.0 二 软件安装 2.1 docker下载: Get Started | Docker进入官网,如图位置,点击mac版本的docker下载. 根据你电脑芯片类型来选择下载的版本…

CI/CD相关概念

目录 CI/CD 蓝绿部署 回滚机制 金丝雀发布 CI/CD CI/CD(持续集成和持续交付/部署)是现代软件开发和运维中的重要实践,旨在通过自动化构建、测试、部署等流程,提升软件交付的速度、质量和一致性。下面详细介绍 CI/CD 的概念、…

sqli-labs靶场实录(二): Advanced Injections

sqli-labs靶场实录: Advanced Injections Less21Less22Less23探测注入点 Less24Less25联合注入使用符号替代 Less25aLess26逻辑符号绕过and/or过滤双写and/or绕过 Less26aLess27Less27aLess28Less28aLess29Less30Less31Less32(宽字节注入)Less33Less34Le…