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

C#插入排序算法

插入排序实现原理

插入排序算法是一种简单、直观的排序算法,其原理是将一个待排序的元素逐个地插入到已经排好序的部分中。

具体实现步骤如下

  1. 首先咱们假设数组长度为n,从第二个元素开始,将当前元素存储在临时变量temp中。

  2. 从当前元素的前一个位置开始向前遍历,比较temp与每个已排序元素的值大小。

  3. 如果已排序元素大于临时变量temp中的元素,则将该元素后移一位,继续向前比较。

  4. 直到找到小于或等于temp的元素位置,将temp插入到该位置后面。

  5. 这样重复步骤2至4,直到所有元素都被插入到适当的位置则排序结束。

插入排序完整代码示例

        public static void InsertionSort(int[] array){int arrayLength = array.Length;//数组长度(时间复杂度为O(n^2))for (int i = 1; i < arrayLength; ++i){//定义临时变量int temp = array[i];int j = i - 1;while (j >= 0 && array[j] > temp){array[j + 1] = array[j];j--;}array[j + 1] = temp;}}public static void InsertionSortRun(){int[] array = { 26, 15, 5, 3, 38, 36, 44, 27, 47, 2, 46, 4, 50, 19, 48 };Console.WriteLine("排序前:" + string.Join(", ", array));InsertionSort(array);Console.WriteLine("排序后:" + string.Join(", ", array));}

输出结果

图片

总结

插入排序算法是一种简单且直观的排序算法。它的时间复杂度为O(n^2),其中n是待排序数组的长度。插入排序在处理小型数据集时具有一定优势,但是对于大型数据集,插入排序的性能会较差。

参考文章

https://blog.csdn.net/weixin_44231544/article/details/126278933

相关文章:

C#插入排序算法

插入排序实现原理 插入排序算法是一种简单、直观的排序算法&#xff0c;其原理是将一个待排序的元素逐个地插入到已经排好序的部分中。 具体实现步骤如下 首先咱们假设数组长度为n&#xff0c;从第二个元素开始&#xff0c;将当前元素存储在临时变量temp中。 从当前元素的前一…...

快速搭建Vue前端框架

快速搭建Vue前端框架 安装Vue Vue官方安装过程:https://cli.vuejs.org/zh/guide/installation.html 二.创建Vue工程 2.2 安装淘宝镜像 安装淘宝镜像&#xff08;会让你安装Vue的速度加快&#xff09;&#xff1a; npm config set registry https://registry.npm.taobao.or…...

TS中private和protected的区别

在 TypeScript 中&#xff0c;private 和 protected 是两种访问修饰符&#xff0c;用于限制类成员&#xff08;如属性、方法等&#xff09;的可见性和可访问性。它们的主要区别在于访问权限的宽松程度。 1. private 当一个类的成员被标记为 private 时&#xff0c;它只能在该…...

虚拟机Hyper-V操作记录

问题1&#xff1a;安装Hyper-V&#xff0c;虚拟机监控程序无法打钩&#xff0c;提示该固件的虚拟化支持被禁用 主板型号&#xff1a;华硕ASUS ROG STRIX Z390-E GAMING 解决方法&#xff1a;进入BIOS&#xff0c;Advanced/CPU Configuration/Intel(VMX) Virtualization Technol…...

90. 子集 II(力扣LeetCode)

文章目录 90. 子集 II题目描述回溯算法 90. 子集 II 题目描述 给你一个整数数组 nums &#xff0c;其中可能包含重复元素&#xff0c;请你返回该数组所有可能的子集&#xff08;幂集&#xff09;。 解集 不能 包含重复的子集。返回的解集中&#xff0c;子集可以按 任意顺序 …...

202435读书笔记|《半小时漫画中国史》——读点经济学与历史,生活更美好,趣味烧脑土地制度、商鞅变法、华丽丽的丝绸之路这里都有

202435读书笔记|《半小时漫画中国史》——读点经济学与历史&#xff0c;生活更美好&#xff0c;趣味烧脑土地制度、商鞅变法、华丽丽的丝绸之路这里都有 1. 土地政策、度量衡及税收2. 商鞅变法3. 西汉经济4. 西汉盐铁大辩论5. 西汉丝绸之路 《半小时漫画中国史&#xff1a;经济…...

2023下半年主品牌锋芒依旧,江南布衣打破既定天花板?

在过去的2023年里&#xff0c;服装板块令人意外的领涨消费大盘&#xff0c;国家统计局数据显示&#xff0c;上半年服装零售额同比增长12.8%&#xff0c;远超商品零售大盘的增速6.8%。 整体表现强劲的同时&#xff0c;“局部”表现是否也尽如人意。近日&#xff0c;作为时尚服装…...

Gitlab: PHP项目CI/CD实践

目录 1 说明 2 CI/CD 2.1 部署方式一&#xff1a;增量部署 2.1.1 目标服务器准备 2.2.2 Gitlab及Envoy脚本 2.2 部署方式二&#xff1a;镜像构建与部署 2.2.1 推送到私有化容器仓库 准备工作 脚本 要点 2.2.2 推送到hub.docker.com 准备工作 脚本 3 参考&#x…...

c语言游戏实战(10):坤坤的篮球回避秀

前言&#xff1a; 这款简易版的球球大作战是博主耗时两天半完成的&#xff0c;玩家需要控制坤坤在游戏界面上移动&#xff0c;来躲避游戏界面上方不断掉下来的篮球。本游戏使用C语言和easyx图形库编写&#xff0c;旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代…...

初学arp欺骗

首先准备一台靶机这里用虚拟机的win10 已知网关与ip地址&#xff08;怕误伤&#xff09; 现在返回kali从头开始 首先探测自己的网关 然后扫内网存活的ip 发现有3台 用nmap扫一下是哪几台 成功发现我们虚拟机的ip 现在虚拟机可以正常访问网络 接下来直接开梭 ip网关 返回虚拟机…...

ftp几个常见错误问题及解决办法

1、无法上传网页&#xff0c;FTP故障&#xff0d;提示“无法连接服务器”错误。 问题出现原因&#xff1a;FTP客户端程序设置问题&#xff0c;客户上网线路问题&#xff0c;ftp服务器端问题。 处理方法&#xff1a;建议客户使用CUTPFTP软件来上传客户的网页&#xff0c;在“F…...

鸿蒙App开发新思路:小程序转App

国家与国家之间错综复杂&#xff0c;在谷歌的安卓操作系统“断供”后&#xff0c;鸿蒙系统的市场化&独立化的道路便显而易见了。 2024年1月18日&#xff0c;华为宣布&#xff0c;不再兼容安卓的“纯血鸿蒙”--HarmonyOS NEXT鸿蒙星河版最终面世&#xff0c;并与2024年Q4正…...

C++17之std::invoke: 使用和原理探究(全)

C进阶专栏&#xff1a;http://t.csdnimg.cn/5mV9r 目录 1.概述 2.辅助类 3.原理分析 4.总结 1.概述 在之前的 C 版本中&#xff0c;要调用不同类型的可调用对象&#xff0c;需要使用不同的语法&#xff0c;例如使用函数调用运算符 () 来调用函数或函数指针&#xff0c;使用…...

shadertoy 游戏《来自星尘》摇杆复刻

正确的做法应该是上 noise 而不是叠加 sin 波&#xff0c;不过如果不想麻烦的话叠波还是一个不错的选择&#xff1a;整体效果如下&#xff0c;已经非常形似 直接上链接&#xff1a;Shader - Shadertoy BETA float radiusScale 0.9; float variation(vec2 v1, vec2 v2, float …...

获取PDF中的布局信息——如何获取段落

PDF解析是极其复杂的问题。不可能靠一个工具解决全部问题&#xff0c;尤其是五花八门&#xff0c;格式不统一的PDF文件。除非有钞能力。如果没有那就看看可以分为哪些问题。 提取文本内容&#xff0c;提取表格内容&#xff0c;提取图片。我认为这些应该是分开做的事情。python有…...

Laya2.13.3在Web条件下使用键盘控制相机移动

需求&#xff1a;在Laya开发时&#xff0c;常常没法移动相机来观察场内的环境&#xff0c;故制作一个移动相机的脚本来是实现此功能&#xff0c;目前先使用键盘后续会添加鼠标控制移动旋转等功能。 onEnable(){this.camera new Laya.Camera(0, 0.1, 100);this._tempVector3 n…...

centos系统服务器在Jenkins执行playwright UI自动化测试框架

centos系统服务器在Jenkins执行playwright UI自动化测试框架 1. centos7.9系统中安装playwright环境报错 playwright/driver/node: /lib64/libc.so.6: version `GLIBC_2.25 not found经过查找资料,playwright 仅支持Ubuntu系统,其他的Linux服务器系统不支持,为此采用docke…...

boost.redis崩溃的解决方法

使用boost.redis的协程一定要co_spawn在strand对象中。 正确的用法&#xff1a; boost::asio::co_spawn(boost::dasio::make_strand(ioc),XXXCoroutine(),boost::asio::detached ); 错误的用法&#xff1a; boost::asio::co_spawn(ioc,XXXCoroutine(),boost::asio::detache…...

蓝桥杯——123

123 二分等差数列求和前缀和数组 题目分析 连续一段的和我们想到了前缀和&#xff0c;但是这里的l和r的范围为1e12&#xff0c;明显不能用O(n)的时间复杂度去求前缀和。那么我们开始观察序列的特点&#xff0c;可以按照等差数列对序列进行分块。如上图&#xff0c;在求前10个…...

嵌入式基础知识-信号量,PV原语与前趋图

本篇来介绍信号量与PV原语的一些知识&#xff0c;并介绍其在前趋图上的应用分析。本篇的知识属于操作系统部分的通用知识&#xff0c;在嵌入式软件开发中&#xff0c;同样会用到这些知识。 1 信号量 信号量是最早出现的用来解决进程同步与互斥问题的机制&#xff08;可以把信…...

别再死记硬背了!用这3个真实场景,彻底搞懂Koa中间件的洋葱模型

用三个实战案例拆解Koa中间件的洋葱模型 当你第一次听说Koa的"洋葱模型"时&#xff0c;是不是也和我一样&#xff0c;脑子里浮现出一个奇怪的画面&#xff1a;一个请求像剥洋葱一样&#xff0c;一层层往里钻&#xff0c;然后又一层层往外冒&#xff1f;但真正开始写代…...

JavaScript高频八股

一、原型和原型链1、概念&#xff1a;每个对象都有一个隐藏的属性 __proto__&#xff08;原型&#xff09;&#xff0c;指向它创建时的构造函数的 prototype&#xff08;原型对象&#xff09;。当访问对象的一个属性或方法时&#xff0c;如果对象本身没有&#xff0c;就会去它的…...

一次删错索引引发的血案:手把手教你复盘线上购物车故障(附完整报告模板)

一次删错索引引发的血案&#xff1a;手把手教你复盘线上购物车故障 那天凌晨3点&#xff0c;我被刺耳的电话铃声惊醒。值班同事急促的声音从听筒传来&#xff1a;"购物车服务完全瘫痪&#xff0c;用户投诉像雪片一样涌来。"当我跌跌撞撞赶到公司时&#xff0c;整个技…...

当英文游戏遇上中文玩家:Degrees of Lewdity本地化之旅

当英文游戏遇上中文玩家&#xff1a;Degrees of Lewdity本地化之旅 【免费下载链接】Degrees-of-Lewdity-Chinese-Localization Degrees of Lewdity 游戏的授权中文社区本地化版本 项目地址: https://gitcode.com/gh_mirrors/de/Degrees-of-Lewdity-Chinese-Localization …...

Linux进程信号详解(二):信号产生

当前阶段&#xff1a;一、通过终端按键产生信号1.1 基本操作CtrlC → SIGINTCtrl\ → SIGQUIT 可以发送终止信号Ctrl Z -> SIGSTP 可以发送停止信号&#xff0c;将当前前台进程挂起到后台设置所有信号都可以自定义捕捉 &#xff1a; 1.2 理解OS如何得知键盘有数据1.3 初步理…...

Go语言的分布式事务处理

Go语言的分布式事务处理 1. 分布式事务简介 在分布式系统中&#xff0c;事务处理变得更加复杂。传统的单机事务可以通过数据库的ACID特性来保证一致性&#xff0c;但在分布式环境中&#xff0c;由于网络延迟、节点故障等因素&#xff0c;确保多个服务之间的数据一致性成为一个挑…...

Koikatu HF Patch终极指南:5分钟解锁完整游戏体验

Koikatu HF Patch终极指南&#xff1a;5分钟解锁完整游戏体验 【免费下载链接】KK-HF_Patch Automatically translate, uncensor and update Koikatu! and Koikatsu Party! 项目地址: https://gitcode.com/gh_mirrors/kk/KK-HF_Patch 还在为Koikatu游戏内容不完整而烦恼…...

利用快马平台AI能力,十分钟快速原型一个tokenp钱包基础框架

今天想和大家分享一个快速验证区块链钱包原型的经验。最近在研究以太坊生态&#xff0c;发现用InsCode(快马)平台可以十分钟就搭出tokenp钱包的基础框架&#xff0c;特别适合做技术验证。 为什么需要快速原型 做区块链产品最怕的就是花几周开发完才发现技术路线有问题。tokenp这…...

Elsevier Tracker:解放科研作者的审稿状态智能追踪方案

Elsevier Tracker&#xff1a;解放科研作者的审稿状态智能追踪方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 你是否曾经历过这样的科研投稿循环&#xff1a;每天早晨第一件事就是登录Elsevier系统&#xff0c…...

如何快速解决API开发痛点:5个技巧让Insomnia成为你的跨平台测试神器

如何快速解决API开发痛点&#xff1a;5个技巧让Insomnia成为你的跨平台测试神器 【免费下载链接】insomnia The open-source, cross-platform API client for GraphQL, REST, WebSockets, SSE and gRPC. With Cloud, Local and Git storage. 项目地址: https://gitcode.com/g…...