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

八大排序之直接插入排序

今天我们来学习八大排序中的直接插入排序。话不多说,直接上动图。

直接插入排序的主要思想是:当数组只有一个元素的时候,我们可以认为该数组是有序的。所以我们可以选择一个元素放进数组(一般为待排数据的第一个元素)。然后开始排序:找到第二个待排序的数据,把这个元素视为数组里面的元素。(但我们并不知道由于新进一个元素,这个数组是否是有序的)所以要与之前的已经排好序的数组中的元素一一比较,使新数组有序。(假如我们排大序)如果新插入的元素比前一个元素的大,则把新插入的元素放在当前数组的位置然后退出循环(此时数组符合排大序)。如果新插入的元素比前一个元素小,不符合我们排大序的规则,所以我们把前一个元素替换到新插入的元素的位置,同时要保存新插入元素的值(因为新插入元素会被覆盖掉),然后前一个元素的位置视为新插入元素的位置进行与这个位置的前一个位置比较。这样一套下来,我们的新数组就会有序了。然后我们继续添加新的元素放在数组的末尾,重复上面的流程,直到添加完所有待排序的元素为止。

void Insert_Sort(int* arr, int n)           //arr存放待排序的数组,n则是数组的元素个数
{for (int i = 0; i < n - 1; i++){int end = i;               // i为当前有序数组的右边界,i + 1则是待排序元素的下标int tmp = arr[end + 1];      //保存待排序数据的值while (end >= 0){                                     if (arr[end] > tmp){arr[end + 1] = arr[end]; //如果待插入元素的值小于数组的右边界的值则替换end--;               //数组边界。同时数组的右边界下标减1.}else{break;               //如果当前位置的前一个下标的值小于该插入数据的值,则停止循环}}arr[end + 1] = tmp;         //把待插入元素的值放在end + 1下标下,即当前下标的值
}

相关文章:

八大排序之直接插入排序

今天我们来学习八大排序中的直接插入排序。话不多说&#xff0c;直接上动图。 直接插入排序的主要思想是&#xff1a;当数组只有一个元素的时候&#xff0c;我们可以认为该数组是有序的。所以我们可以选择一个元素放进数组&#xff08;一般为待排数据的第一个元素&#xff09;…...

二级评论列表-Java实现

二级评论列表是很常见的功能&#xff0c;文章记录了新手用Java实现的具体逻辑。 整体实现逻辑是先用2个sql&#xff0c;分别查出两层数据。然后用java在service中实现数据组装&#xff0c;返给前端。这种实现思路好处是SQL简洁&#xff0c;逻辑分明&#xff0c;便于维护。 一…...

如何基于区块链进行虚拟电厂运营平台建设?

本项目旨在基于区块链技术建设虚拟电厂运营平台&#xff0c;以提升省内大用户及工业企业和工业园区的需求响应能力&#xff0c;优化能源结构配置&#xff0c;并推动能源交易、需求响应和现货交易等新型业态的发展。通过建设虚拟电厂&#xff0c;项目将实现工业企业及园区各供用…...

大学英语四级选词填空练习题解析

一、引言 大学英语四级考试中的选词填空部分&#xff0c;一直是不少同学的 “拦路虎”。它不仅要求我们有扎实的词汇基础&#xff0c;还需要具备良好的语境分析能力。今天&#xff0c;我们就通过一道练习题来深入剖析这类题型的解题思路。 二、题目内容 Leisure activities …...

基于控制台的小车导航游戏开发详解(C++实现)

本文将详细讲解一个基于C控制台的小车导航游戏项目。通过该项目可以学习二维数组操作、队列数据结构应用以及游戏循环控制等核心编程概念&#xff0c;特别适合刚接触游戏开发的初学者学习。 一、项目概述 1.1 游戏规则 玩家可创建多辆具有不同初始位置和移动速度的小车 每辆…...

详讲Linux下进程等待

3.进程等待 引言&#xff1a;什么是进程等待 想象有两个小伙伴&#xff0c;一个是 “大强”&#xff08;父进程 &#xff09;&#xff0c;一个是 “小强”&#xff08;子进程 &#xff09;。大强给小强安排了任务&#xff0c;比如去收集一些石头。 …...

数字孪生火星探测车,星际探索可视化

运用图扑构建数字孪生火星探测车&#xff0c;高精度还原外观与内部构造。实时映射探测车在火星表面的移动、探测作业及设备状态&#xff0c;助力科研人员远程监测、分析数据&#xff0c;为火星探索任务提供可视化决策支持。...

《JVM考古现场(二十三):归零者·重启奇点的终极奥义》

目录 楔子&#xff1a;归零者文明觉醒 上卷十维弦理论破译 第一章&#xff1a;JVM弦论代码考古 第二章&#xff1a;超膜引用解析算法 第三章&#xff1a;量子真空涨落监控 中卷归零者心法实战 第四章&#xff1a;宇宙重启倒计时引擎 第五章&#xff1a;内存奇点锻造术 第…...

设计测试用例模板

面试时问你一个场景&#xff0c;要你设计测试用例&#xff0c;你会怎么回答&#xff1f; 面试官让你设计一个功能的测试用例&#xff0c;比如“上传文件功能”&#xff0c;其实就是想考你&#xff1a; 思维是否全面能不能抓住重点会不会分类和使用测试方法有没有考虑异常情况…...

java怎么找bug?Arthas原理与实战指南

Arthas原理与实战指南 1. Arthas简介 Arthas是阿里巴巴开源的Java诊断工具&#xff0c;其名字取自《魔兽世界》的人物阿尔萨斯。它面向线上问题定位&#xff0c;被广泛应用于性能分析、定位问题、安全审计等场景。Arthas的核心价值在于它能够在不修改应用代码、不重启Java进程…...

2024年国考

数学 一&#xff0c;逻辑符号表示&#xff08;3 分&#xff09; 1&#xff0c;只有获得奥运会资格的运动员才可以参加奥运会&#xff0c;参加奥运会的云动员不一定获奖。 设&#xff1a; ( Q(x) )&#xff1a;运动员 ( x ) 获得奥运会资格( P(x) )&#xff1a;运动员 ( x )…...

fastlio用mid360录制的bag包离线建图,提示消息类型错误

我用mid360录制的bag包&#xff0c;激光雷达的数据类型是sensor_msgs::PointCloud2&#xff0c;但是运行fast_lio中的mid360 launch文件&#xff0c;会报错&#xff08;没截图&#xff09;&#xff0c;显示无法从livox_ros_driver2::CustomMsg转换到sensor_msgs::PointCloud2。…...

015-C语言字符函数和字符串函数

C语言字符函数和字符串函数 文章目录 C语言字符函数和字符串函数1. 字符分类函数2. 字符转换函数3. strlen4. strcpy5. strcat6. strcmp7. strncpy8. strncat9. strncmp10. strstr11. strtok12. strerror 1. 字符分类函数 C语言中有一系列函数是专门做字符分类的&#xff0c;也…...

docker 搭建nacos 2.2.1版本单机版

通过docker-compose搭建 services:nacos:image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/nacos/nacos-server:v2.2.1container_name: nacosenvironment:- PREFER_HOST_MODEhostname- MODEstandalone- NACOS_AUTH_ENABLEtrue- NACOS_AUTH_IDENTITY_KEYxiaogang- N…...

stack,queue和priority_queue

1. stack 1.1 stack 的介绍 栈是一种容器适配器&#xff0c;专门设计用于LIFO环境&#xff08;后进先出&#xff09;&#xff0c;其中元素仅从容器的一端插入和提取。 容器适配器&#xff0c;也就是使用特定容器类的封装对象作为其底层容器&#xff0c;提供一组特定的成员函…...

服务治理-搭建Nacos注册中心

运行nacos.sql文件。 将准备好的nacos目录和nacos.tar包上传。 192.168.59.101是我的虚拟机ip&#xff0c;8848是我们设置的访问端口号。...

《Operating System Concepts》阅读笔记:p738-p747

《Operating System Concepts》学习第 63 天&#xff0c;p738-p747 总结&#xff0c;总计 10 页。 一、技术总结 1.network structure local-area networks (LAN)、wide-area networks (WAN). 2.communication structure naming and name resolution、communication proto…...

【Datawhale AI春训营】Java选手初探数据竞赛

自然语言处理基础&#xff1a; 自然语言处理(Natural Language Processing&#xff0c;NLP) 是计算机科学与人工智能领域中的一个极具挑战性和应用前景的研究方向。 它旨在使计算机能够理解、生成和处理人类的自然语言&#xff0c;从而实现人机高效交互。 NLP技术在搜索引擎、…...

React-useRef

如果我们想在hooks里面获同步取最新的值&#xff0c;那么则可以使用useRef, 关键源码如下&#xff1a; function mountRef<T>(initialValue: T): {|current: T|} {const hook mountWorkInProgressHook();const ref {current: initialValue};hook.memoizedState ref;re…...

得物官网sign签名逆向分析

打开得物官网&#xff0c;点击鞋类&#xff0c;可以看到请求 直接搜sign function p(e) {return f()("".concat(e ? s()(e).sort().reduce(function(t, n) {return "".concat(t).concat(n).concat(e[n])}, "") : "", "048a9…...

网络爬虫和前端相关知识

一 爬虫发展历史,概念与反爬机制 (一)爬虫发展历史 早期爬虫(1990s)起源 :早期的爬虫主要是为了构建搜索引擎。典型案例: Yahoo!人工目录 → 谷歌PageRank算法驱动的自动化爬虫。功能特点 :这些爬虫的功能比较单一,主要以抓取网页的文本内容为主,采用简单的广度优先…...

山东科技大学人工智能原理考试回忆复习资料

全部资料&#xff1a;https://mbd.pub/o/around_01 考试回忆版 简答题 人工智能定义 图灵测试基本思想 人工智能主要研究领域写八个以上 专家系统是什么及其特点 遗传算法流程图 综合题 语义网络表示 书上习题 证明S不满足性 用归结原理求问题 谁说真话假话的 书上例题…...

单元测试的一般步骤

Qt Test Qt Test 是 Qt 开发人员发布的一个单元测试框架&#xff0c;用于测试基于 Qt 框架的应用程序或库。它提供了单元测试框架中常见的所有功能以及用于测试图形用户界面的扩展。 1.自动化测试包络ui测试>接口测试>单元测试&#xff1b;现问如何使用Qt进行单元测试&…...

c++题目_P1443 马的遍历

P1443 马的遍历 # P1443 马的遍历 ## 题目描述 有一个 $n \times m$ 的棋盘&#xff0c;在某个点 $(x, y)$ 上有一个马&#xff0c;要求你计算出马到达棋盘上任意一个点最少要走几步。 ## 输入格式 输入只有一行四个整数&#xff0c;分别为 $n, m, x, y$。 ## 输出格式 …...

并发网路通信-套接字通信

套接字通信就是网络通信 在网络通信时,客户端和服务器的比例是N:1 服务器如何处理多个客户端的请求 并发处理方式 1.多线程并发处理->线程池并发处理,线程池可以对多个线程进行管理 2.多进程->进程池 3.io多路转接,使用select或者epoch进行处理,使用io转接函数…...

STM32N6如何调试下载代码

关键词&#xff1a;STM32N6、调试代码、开发者模式、外部Flash模式 文章目录 前言一、开发者模式调试1.1 CubeIDE调试1.2 IAR调试 二、如何下载代码&#xff08;外部FLASH模式&#xff09;2.1 准备工作2.2 编译下载2.2.1 Appli编译头文件下载2.2.2 FSBL编译头文件下载 2.3 运行…...

【2025】Datawhale AI春训营-蛋白质预测(AI+生命科学)-Task2笔记

【2025】Datawhale AI春训营-蛋白质预测&#xff08;AI生命科学&#xff09;-Task2笔记 本文对Task2使用的代码进行理解。 任务描述 Task2的任务仍然是通过对反应中包含的蛋白质残基信息&#xff0c;运用深度学习模型构建蛋白质3D结构的隐式模型&#xff0c;从而达成准确预测…...

Python基于知识图谱的医疗问答系统【附源码、文档说明】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…...

Unreal 从入门到进阶 之 如何实现Pixel Streaming

文章目录 前言核心概念工作原理主要应用场景Pixel Streaming和Pixel Streaming2部署准备编辑器推流打包推流最后前言 Unreal Engine 5 (UE5) 的 Pixel Streaming 是一项基于云端的实时流媒体技术,允许将 UE5 应用的高质量图形渲染结果通过 WebRTC 协议传输到用户的浏览器或轻…...

作业2 CNN实现手写数字识别

# 导入必要库 import numpy as np import matplotlib.pyplot as plt import seaborn as sns # 用于高级可视化 from tensorflow import keras from tensorflow.keras import layers from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay import time # 用于…...

Linux驱动开发--阻塞、非阻塞I/O

2. 阻塞、非阻塞I/O IO 指的是 Input/Output&#xff0c;也就是输入/输出&#xff0c;是应用程序对驱动设备的输入/输出操作。当应用程序对设备驱动进行操作的时候&#xff0c;如果不能获取到设备资源&#xff0c;那么阻塞式 IO 就会将应用程序对应的线程挂起&#xff0c;直到…...

运筹学之模拟退火

目录 一、历史二、精髓思想三、案例与代码实现 一、历史 问&#xff1a;谁在什么时候提出模拟退火&#xff1f;答&#xff1a;模拟退火算法&#xff08;Simulated Annealing&#xff0c;SA&#xff09;是由斯图尔特柯尔斯基&#xff08;Scott Kirkpatrick&#xff09; 等人在 …...

JavaScript 的演变:2023-2025 年的新特性解析

随着Web技术的飞速发展&#xff0c;ECMAScript&#xff08;简称ES&#xff09;作为JavaScript的语言标准&#xff0c;也在不断进化。 本文将带你学习 ECMAScript 2023-2025 的新特性。 一、ECMAScript 2023 新特性 1.1 数组的扩展 Array.prototype.findLast()/Array.protot…...

CSS继承

CSS继承 CSS继承是一种机制&#xff0c;允许子元素自动继承父元素的某些样式属性&#xff0c;从而减少重复代码。 以下是一些常见的具有继承性的CSS属性&#xff1a; color : 文字颜色 font-family &#xff1a; 字体族名称 font-size &#xff1a; 字体大小 font-weight &am…...

游戏引擎学习第236天:GPU 概念概述

回顾并展望通过视频采集卡进行流媒体传输的未来 昨天&#xff0c;我们迈出了大胆的一步&#xff0c;决定初始化硬件的 3D 加速&#xff0c;因为我有点厌倦了我们的游戏没有垂直同步&#xff08;vsync&#xff09;。如今&#xff0c;在 Windows 上&#xff0c;我找不到一种可靠…...

HFSS3(limy)——建模学习记录

前言——笔者使用的是21版HFSS 1.基本模型 为什么没有环形的天线 2.创建基本模型方法 常用&#xff1a;先粗略建好模型再编辑输入准确坐标和大小尺寸&#xff08;这里长方体起始点是左上角下方的点&#xff0c;也就是说要输入模型起点相对于坐标原点的位置尺寸就可以确定具体…...

php实现zip压缩

可以使用ZipArchive类来创建ZIP压缩文件。ZipArchive是PHP内置的一个类&#xff0c;提供了创建、打开、读取、写入和关闭ZIP文件的功能。 示例&#xff1a;压缩单个文件 <?php$fileToZip path/to/your/file.txt; $zipFileName compressed.zip;$zip new ZipArchive(); …...

【STM32单片机】#10 USART串口通信

主要参考学习资料&#xff1a; B站江协科技 STM32入门教程-2023版 细致讲解 中文字幕 开发资料下载链接&#xff1a;https://pan.baidu.com/s/1h_UjuQKDX9IpP-U1Effbsw?pwddspb 单片机套装&#xff1a;STM32F103C8T6开发板单片机C6T6核心板 实验板最小系统板套件科协 实验&…...

goc命令大全

颜色0黑1红2蓝3浅绿4浅蓝5淡黄6棕7深蓝8灰9粉10深绿11紫12蓝绿13黄14橙15白 绘图命令功能pen笔.fd()前进.rt()右转.c()颜色.up()抬笔.o(,)圆.e(,)椭圆.r(,,)长方形.picL(,)调图片.text(,,)文字.hide()隐藏.moveTo(,)移动wait();等待.soundL()调声音pause();暂停 绘图命令功能…...

Linux | 软件仓库管理

一. 软件包 1.1 软件包的分类 DEB&#xff1a;主要用于基于 Debian 的系统&#xff0c;如 Ubuntu。这种软件包格式具有良好的依赖管理机制&#xff0c;方便用户安装、升级和卸载软件。RPM&#xff1a;广泛应用于 Red Hat、CentOS、Fedora 等系统。RPM 包将软件打包成一个文件…...

Python实现对目标Word文档进行自动化排版【4万字精讲】(14)

前言 本文是该专栏的第14篇,后面会持续分享Python办公自动化干货知识,记得关注。 注意:本文涵盖4万字以及实战操作代码的精讲攻略,带你轻松掌握一键式“文档自动化排版”程序功能。 如果说当你在工作项目中,遇到这样的需求,需要如何处理——假设,现在有大批量的docx格…...

LeetCode每日一题4.19

2563. 统计公平数对的数目 题目 问题分析 输入&#xff1a;一个整数数组 nums 和两个整数 lower 和 upper。 输出&#xff1a;返回满足条件的公平数对的数目&#xff0c;即对于所有 0 < i < j < n&#xff0c;lower < nums[i] nums[j] < upper 的数对 (i, j)…...

Spring AI 开发 - 快速入门

先看效果 项目搭建 Spring AI 是 Spring 推出的一个项目&#xff0c;目标是提供统一的API抽象层&#xff0c;屏蔽不同AI模型和服务的底层差异&#xff0c;实现跨平台兼容性。 演示使用的模型是阿里的 qwq-32b。 环境要求&#xff1a; JDK &#xff1a;17以上&#xff08;包括…...

leetcode哈希表(六)-三数相加

题目 15. 三数之和 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复…...

Photoshop安装与配置--简单攻略版

下载地址:Photoshop软件工具下载 安装完成后&#xff0c;即可运行Photoshop.exe&#xff1b;打开工具页面后&#xff0c;按照下面简单配置即可 1.编辑-》首选项-》常规 或者直接快捷键CtrlK 暂存盘&#xff1a;一定要设置为非C盘 2.性能 3.文件处理 以上配置比较基础&#xf…...

一个 CTO 的深度思考

今天和一些同事聊了一会&#xff0c;以下是我的观点 我的观点&#xff0c;成年人只能筛选&#xff0c;不能培养在组织中&#xff0c;应该永远向有结果的人看齐。不能当他站出来讲话的时候&#xff0c;大家还要讨论讨论&#xff0c;他虽然拿到结果了&#xff0c;但是他就是有一…...

Java:使用Maven构建项目无src解决方案

创建箭头所指的包和类以及yml文件&#xff1a; 类中&#xff1a; package com.itheima;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;SpringBootApplication public class BigEventApplication …...

Git 命令速查手册

听说用美图可以钓读者&#xff1f; 一、基础操作核心命令 1. 仓库初始化与克隆 命令作用示例git init创建新仓库git init my-projectgit clone克隆远程仓库git clone [https://github.com/user/repo.git](https://github.com/user/repo.git)git remote add关联远程仓库git re…...

office软件中word里面的编号库和列表库功能

在Microsoft Word中,编号库和列表库是两大核心排版工具,分别服务于不同层级的文档结构化需求。以下从功能定义、核心差异、应用场景及操作技巧等维度进行详细解析: 一、编号库(Numbering Library) 1. 定义与功能 编号库是Word中预设或用户自定义的有序列表格式集合,用于…...

C++入门七式——模板初阶

目录 函数模板 函数模板概念 函数模板格式 函数模板的原理 函数模板的实例化 模板参数的匹配原则 类模板 类模板的定义格式 类模板的显式实例化 当面对下面的代码时&#xff0c;大家会不会有一种无力的感觉&#xff1f;明明这些代码差不多&#xff0c;只是因为类型不…...