发布时间:2026/7/29 7:24:34
直接插入排序--附图解代码示例 直接插入排序 (Insertion Sort)基本思想将待排序序列分为已排序和未排序两部分。每次从未排序区取出第一个元素在已排序区中从后向前扫描找到合适位置并插入。算法步骤从第一个元素开始该元素可以认为已经被排序。取出下一个元素在已经排序的元素序列中从后向前扫描。如果已排序的元素大于新元素将该元素移到下一位置。重复步骤 3直到找到已排序的元素小于或等于新元素的位置。将新元素插入到该位置后。重复步骤 2~5直到所有元素均排序完毕。动态演示时间复杂度最好情况输入数组已有序。每轮仅需 1 次比较无元素移动总比较次数为n−1n-1n−1时间复杂度为O(n)O(n)O(n)。最坏情况输入数组逆序。第iii轮需比较iii次移动iii次总比较和移动次数约为n(n−1)/2n(n-1)/2n(n−1)/2时间复杂度为O(n2)O(n^2)O(n2)。平均情况时间复杂度为O(n2)O(n^2)O(n2)。空间复杂度算法仅使用了常数个辅助变量key、j等不需要额外数组因此是原地排序空间复杂度为O(1)O(1)O(1)。稳定性当遇到与key相等的已排序元素时不会插入到其前面循环条件为arr[j] key因此相等元素的相对顺序保持不变直接插入排序是一种稳定排序。代码实现 (C语言)#includestdio.hvoidinsertion_sort(intarr[],intn){for(inti1;in;i){intkeyarr[i];// 当前待插入的元素intji-1;// 将比 key 大的元素都向后移动一位while(j0arr[j]key){arr[j1]arr[j];j--;}arr[j1]key;// 插入到正确位置}}

相关新闻

2026/7/29 7:24:34

从零搭建Pikachu本地靶场:手把手实战SQL注入原理与防御

1. 项目概述:为什么我们需要一个本地靶场?如果你是一名刚刚踏入安全领域的新手,或者是一名开发人员,想要理解那些听起来很酷的“SQL注入”、“XSS攻击”到底是怎么回事,你可能会立刻想到去网上找一些在线的靶场平台。这…

2026/7/29 7:24:34

装修选砖一脸懵?这份高端陶瓷十大品牌清单建议先收藏

装修选瓷砖这件事,真的能让人纠结到失眠。 品牌太多、款式太杂、价格跨度太大,去一趟建材市场逛到腿软,回来还是拿不定主意。 别急,今天直接给你整理一份陶瓷十大品牌参考清单,帮你少走弯路。 先说一个关键问题&#x…

2026/7/29 8:29:38

基于STM32与MPU6050的计步算法实现与嵌入式系统设计

1. 项目缘起:为什么还要自己做一个步数计?在智能穿戴设备遍地开花的今天,从手环到手机,计步功能似乎已经成了标配。你可能觉得,一个步数测量系统还有什么好做的?直接用现成的模块或者调用手机API不就行了&a…

2026/7/29 8:29:38

Node.js SSTI漏洞实战:从原理到攻防的完整解析

1. 项目概述:一次真实的攻防演练复盘 前段时间,我作为防守方复盘了一场以“振兴杯”为背景的网络安全技能竞赛中的Web渗透题目。这道题的核心,是一个典型的 SSTI(服务器端模板注入) 漏洞,靶场环境搭建在 …

2026/7/29 8:29:38

全局快门摄像头实测:从原理到选型,深度解析动态范围与果冻效应

1. 项目概述与核心价值最近手头拿到了一款新的全局快门摄像头模块,趁着项目间隙,专门花时间做了一次从硬件接口到成像质量的完整测试。对于很多从事机器视觉、高速运动捕捉、工业检测或者AR/VR开发的工程师来说,选型一款合适的全局快门&#…

2026/7/29 8:29:38

C++ Lambda表达式:从函数对象到STL算法的轻量级匿名函数

1. 从“函数对象”到“就地匿名函数”:Lambda的诞生背景 在C11标准发布之前,如果你想在STL算法中传递一个自定义的比较逻辑或者操作,通常需要定义一个完整的函数,或者更常见的是,定义一个“函数对象”。函数对象&#…

2026/7/28 13:41:25

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/7/29 0:02:56

商标注册找代理还是自己办?算清这笔“时间账”和“风险账

商标注册,找代理还是自己办?帮你算清这笔“时间账”和“风险账”“商标注册,找代理还是自己办?”这是深圳每个创业者都会遇到的灵魂拷问。有人说找代理是花冤枉钱,有人说自己办风险太高。到底哪种更划算?本…

2026/7/29 0:02:56

免费开源RPA工具OpenRPA:企业级自动化流程的终极解决方案

免费开源RPA工具OpenRPA:企业级自动化流程的终极解决方案 【免费下载链接】openrpa Free Open Source Enterprise Grade RPA 项目地址: https://gitcode.com/gh_mirrors/op/openrpa 你是否厌倦了每天重复枯燥的数据录入和报表整理工作?是否希望有…

2026/7/29 0:02:56

KMS智能激活工具:一站式解决Windows和Office激活难题

KMS智能激活工具:一站式解决Windows和Office激活难题 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为系统弹出激活提示而烦恼吗?KMS智能激活工具能够帮你彻底告别W…

2026/7/28 4:38:09

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…