插入排序实现--图解/实例/java/php

高通QNN SDK实战:从PyTorch模型到Snapdragon设备的完整部署指南 本文提供了一份详尽的高通QNN SDK实战指南,手把手教你如何将PyTorch模型高效部署到Snapdragon设备。内容涵盖从环境搭建、模型转换、量化优化到多后端部署与性能评测的完整流程,旨在帮助移动AI开发者打通模型落地的“最后一公里”,充分发挥高通平台的硬件加速潜力。 阅读详情

插入排序

在一个有序的数组中,插入新的数据,实现这种的操作就是插入排序

概念

  • 原理:从第一个元素开始,左边视为已排序数组,右边视为待排序数组,从左往右依次取元素,插入左侧已排序数组,对插入新元素的左侧数组重新生成有序数组
  • 需要注意的是,在往有序数组插入一个新元素的过程中,我们可以采用按顺序循环比较,也可以通过折半查找法来找到新元素的位置,两种方式的效率取决于数组的数据量

最坏时间复杂度O(n^2)
最好时间复杂度O(n)
平均时间复杂度O(n^2)

  • 插入排序是一种稳定排序算法

图解

以初始数组 = {2,5,1,3,6}为例,对其排序得到一个升序数组
在这里插入图片描述

  1. 左侧数组为{2},插入新元素5,5与2比较,不交换位置
    在这里插入图片描述
  2. 继续插入1,先和5比较,小于5交换位置,再与2比较,交换位置
    在这里插入图片描述
  3. 插入3,3小于5但大于2,因此与5交换位置
    在这里插入图片描述
  4. 最终插入6,6大于5,至此,得到了最终的排序数组

实例

采用简单的顺序比较

Java实现

/**
* java 插入排序升序
*/
public static int[] insertSort(int[] arr)
{
	if (arr.length < 2)
		return arr;
		
	for (int i = 1;i < arr.length;i++) {
		for (int j = i;j > 0;j--) {
			if (arr[j-1] > arr[j]) {
				int temp = arr[j];
				arr[j] = arr[j-1];
				arr[j-1] = temp;
			} else {
				break;//插入新的元素
			}
		}
	}

	return arr;
}

PHP实现

/*
* php 插入排序升序
*/
public function insertSort(array $arr)
{
	if (count($arr) < 2)
		return $arr;
		
	for ($i = 1;$i < count($arr);$i++) {
		for ($j = $i;$j > 0;$j--) {
			if ($arr[$j-1] > $arr[$j]) {
				list($arr[$j], $arr[$j-1]) = [$arr[$j-1], $arr[$j]];
			} else {
				break;
			}
		}
	}

	return $arr;
}

采用折半查找法,较为复杂,感兴趣的同学可以百度

(8)(8.19) GPIOs Ardupilot官网关于《Copter》的翻译 —《(8.19) GPIOs》。 阅读详情

相关推荐

Vue3+Element Plus:构建现代化后台管理系统的核心布局实践

本文详细介绍了使用Vue3和Element Plus构建现代化后台管理系统的核心布局实践。从开发环境搭建到核心布局设计,再到动态菜单与路由集成,提供了完整的解决方案和优化技巧。特别适合需要快速开发高效、响应式后台系统的开发者,通过实战案例展示了如何提升开发效率和系统性能。

weixin_28309723的博客 458

JavaScript - 插入排序的两种方式

插入排序1 新建一个新数组 循环遍历原始数据,把原始数组内的每一个逐个插入到新数组内 在插入的时候,按照一定的顺序插入 // 原始数组 var arr = [ 9, 2, 5, 3, 7, 6, 4, 1, 8 ] // 准备一个新数组 var newarr = [] // 循环遍历原始数组 for (var i = 0; i < arr.length; i++) { // arr[i] 就是原始数组中的每一个数据, 也就是要插入新数组的

weixin_44175290的博客 2509

AutoCAD 2024 Mac版安装激活教程:从下载到破解一站式解决方案

本文提供AutoCAD 2024 Mac版的详细安装与优化指南,包括系统要求检查、下载安装流程、常见问题解决方案及性能优化设置。特别介绍了如何应用最新补丁和Update保持软件性能,帮助用户顺利完成从安装到破解的全过程。

weixin_29239661的博客 839

js的插入排序

经典排序方法----插入排序

z12845464的博客 2723

紫光同创PDS软件操作指南:如何为FPGA新增自定义Flash型号

本文详细介绍了在紫光同创PDS软件中为FPGA新增自定义Flash型号的完整操作指南。针对官方支持列表之外的SPI Flash芯片,文章从理解FPGA配置逻辑入手,逐步讲解如何通过扫描Flash ID、在Flash Operator中精准填写参数、转换.sbit文件,最终完成固化的全过程,并分享了高级技巧与常见问题排查方法,帮助工程师摆脱对预设型号的依赖,实现灵活选型。

weixin_29204749的博客 325

EEGLAB数据预处理基本流程GUI实操指南

按钮,会出现如上图所示的长条形对话框,方框里面是所有电极的名称,这时将需要的剔除的电极选择上,如上图,我选择了 VEOG这个电极(该电极表示是垂直眼电),然后点“OK”,在弹出的对话框中自行确定是否需要修改命名。坏导是指在数据采集时,由于各种原因(如,电极本身问题或阻抗不好等)导致数据记录有问题,但是在后期又特别想要该通道的数据,那么就可以利用插值的方法进行——利用该导联周边的几个电极点的均值作为该导的数据。上图的图是通过IClabel的工具箱进行自动判断的,可以帮助自动识别出哪些是Eye的成分。

fdgdf5535的博客 6394

数据结构七大排序算法图解——插入排序动图展示

插入排序动图演示——直接插入排序、希尔排序

二哈喇子! 5331

UE5高斯泼溅落地全链路:从PLY导入到实时渲染的工程实践

3D高斯泼溅(3D Gaussian Splatting)正从NeRF后处理技术演进为新一代隐式几何渲染范式,其核心在于以可微椭球体替代传统三角面片,通过协方差矩阵与球谐系数实现高质量体素化渲染。该技术突破点云精度瓶颈,但与UE5现有资产管线存在根本性不兼容——静态网格导入器无法解析scale/rot/sh系数等非标顶点语义,标准光栅化管线亦无法执行高斯核采样计算。XV3DGS-UEPlugin通过自定义资产类型、StructuredBuffer GPU数据流与专用材质节点,将高斯泼溅重构为可编辑、可LOD

weixin_33692177的博客 357

【数据结构】插入排序详细图解(一看就懂)

我们将原数组空间看成两个部分,前边是有序部分,后边是无序部分,有序部分我们默认为它就已经是排好序的,在尾部新加入的元素有可能会导致整个有序数组变得无序,因此我们需要进行调整。 调整方式就是将新加入的元素进行对比并往前移动,新加入元素和它前边的元素进行对比,如果它比它前边的元素小,则二者互换位置,不断重复这个过程,直到它前边的元素小于它才会停止,这样一来,他就仍然是有序数组。

陈大大陈的博客 3254

从URDF到Gazebo:一个完整的ROS2机械臂仿真与运动控制实战指南

本文提供了一个完整的ROS2机械臂仿真与运动控制实战指南。详细讲解了从URDF建模、ROS2 Control配置到Gazebo物理仿真的全流程,重点介绍了如何利用MoveIt2快速搭建高级运动规划系统,并解决实际部署中的常见问题,帮助开发者高效、安全地进行机器人算法验证与开发。

red88的博客 573

SAGA GIS英文版进行地形分析,计算常用的地形因子等

SAGA GIS中文版是一款专业的自动化地球科学分析系统软件。SAGA GIS最新版界面简洁,操作简便,用户使用时输入要分割的影像,选择要计算特征的影像或者波段,设置越大,得到的斑块越大;反之,则越小,点击Okay,得到分割影像图。SAGA GIS中文版主要通过选择适合你影像的格式,加载影像。 SAGA GIS全称是System for Automated Geoscientific Analyses,是一种用于编辑空间数据的地理信息系统(GIS)计算机程序,它是免费的开源软件,SAGA GIS旨在为科学家

qq_35794085的博客 5640

JS实现插入排序

插入排序(Insertion Sort)是一种简单直观的排序算法,其核心思想是逐步构建有序序列,对于每个未排序的元素,在已排序部分找到合适的位置插入。本文将深入研究插入排序的原理、实现方式等

CreatorRay的博客 712

【定位模块项目实战】gnss_localizer、lidar_localizer功能包解析

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、1.2.3.4.二、1.2.3.4.三、1.2.3.4.四、1.2.3.4.总结参考资料 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对**【无人驾驶autoware项目实战】感知–定位模块**做个简单的介绍,具体内容后续再更,其他模块可以参考去我其他文章 提示:以下是本篇文章正文内容 一、 1. 2. 3. 4. . . 二、

qq_35635374的博客 1931

php html转成数组,PHP_php将HTML表格每行每列转为数组实现采集表格数据的方法,本文实例讲述了php将HTML表格每 - phpStudy...

php将HTML表格每行每列转为数组实现采集表格数据的方法本文实例讲述了php将HTML表格每行每列转为数组实现采集表格数据的方法。分享给大家供大家参考。具体如下:下面的php代码可以将HTML表格的每行每列转为数组,采集表格数据function get_td_array($table) {$table = preg_replace("']*?>'si","",$table);$table ...

weixin_39542710的博客 311

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

图解排序算法(二)之希尔排序

 希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。本文会以图解的方式详细介绍希尔排序的基本思想及其代码实现。 基本思想   希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越...

m0_37477061的博客 238

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

oracle寻找第一条数据,oracle数据库排序后获取第一条数据

Day 19 :选择排序和插入排序Day 19 :选择排序和插入排序 Python 回忆录 2020/10/10 选择排序算法 插入算法 2020/10/10 Selection sort 选择排序就是把无序的元素全部比较出来最小的拎起来放在第一位。之后再全部比较n-i个元素(i代表挑选循环的次数)。 def select_sort(alist): n = leC#编程实现附加分离数据库的程序实例...

weixin_30776737的博客 735

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

使用php描述快速排序算法,PHP描述冒泡排序和快速排序算法

使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组。使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组。写一个二维数组排序算法函数,能够具有通用性,可以调用php内置函数.使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组functionbubble_sort($array){$count=count($array););$...

weixin_29028145的博客 328

《编程实用算法实现整理》系列技术文章整理收藏

  《编程实用算法实现整理》系列分享专栏 《编程实用算法实现整理》已整理成PDF文档,点击可直接下载至本地查阅https://www.webfalse.com/read/201759.html 文章 算法导论:选择排序的原理与实现 WordPress的用户密码计算算法 PHP实现四种常用的排序算法 非常直观的数据结构与算法演示 深入探讨各种背包算法问题 图解插入排序算法 图解堆...

hello_katty的专栏 1189

小伙子,过来咱两聊聊排序(图示+动画) | 十大排序(JS)

排序嘛,简单的。 看你骨骼惊奇,你肯定能学会~~

Ethan's Blog 1429

redis数据类型zset底层数据结构,分享一点面试小经验

正文 下文中截图来源于朋友一个pdf版本的面经,把所以知识点的答案整理了下来,耗费他至少1个月时间,在本文最后部分把这个pdf分享给大家,觉得有用的麻烦点赞关注走一波,谢谢!!!面经中有他的知识点的答案,如下图示例,非常详细(文末有领取方式)!!! 1.数据结构与算法篇 你是java开发你就用java代码去实现 书籍参考: (0)《图解算法》入门(1)《剑指offer》 剑指Offer_编程题_牛客网(2)《程序员代码面试指南 IT名企算法与数据结构题目最优解》参考左神视频(3)leetcode Lee

m0_58591044的博客 201

给编程入门者的唠叨话(全栈路线)

-->C[C程序设计,经典编程282例,编程珠玑,数据结构和算法] -->PHP\Python\Java\Html\CSS\Javascript 各种框架bootstrap、Jquery -->Vue\Node\Mysql|MongoDB\Webpack\git\linux\ 复制代码 以上是我的接触编程入门一年的情况,不过我走了很多弯路,希望...

weixin_33832340的博客 857

计算机底层基础:数学、算法与语言原理如何塑造高效编程能力

在软件开发领域,理解计算机底层基础是突破技术瓶颈、构建高效可靠系统的关键。从离散数学、线性代数到概率统计,数学为算法设计与逻辑建模提供了形式化工具和严密框架。数据结构与算法作为程序效率的灵魂,决定了数据组织方式与问题求解步骤,直接影响系统性能与资源消耗。高级语言的编译原理、内存管理机制则是连接抽象逻辑与物理硬件的桥梁,深入理解指针、垃圾回收等概念有助于规避内存泄漏、优化执行效率。这些底层知识共同构成了解决性能优化、复杂系统调试等工程实践问题的基石,尤其在处理大规模数据处理、高并发场景时不可或缺。掌握数学思维

weixin_30268071的博客 490

【计算机综合】

高级算法 哈夫曼树

dominic_z的博客 1496

插入排序详解

摘要:插入排序是一种非常有意思且比较高效的排序方法,同时插入排序是希尔排序的基础,现在我们来看看插入排序。

云杉木屋 4万+

插入排序(Insertion Sort)

插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 算法描述 一般来说,插入排序都采用in-place在数组上实现。具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序; 取出下一个元素,在已经排序的元素序列中从后向前扫描; 如果该元素(已排序)大于新元素,将该...

akuan1992的博客 441

php排序算法之插入排序

目录 一: 原理 二: 举例说明 三: 插入排序步骤 四: PHP代码实现插入排序 一: 原理        插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 二: 举例说明 原始数组:     10   9   5   12  1           默认1...

俗人世界 1385
上一篇: 冒泡排序实现--图解/实例/java/php
下一篇: 快速排序实现--图解/实例/java/php
异次元程序员
博客等级 码龄11年 30粉丝 24原创
评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值