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

c#插入排序

插入排序

两个区域 未排序区 用一个索引值做分水岭

未排序区元素与排序区元素比较插入到合适位置

直到未排序区清空

前提规则

排序开始 时,首先认为第一个元素在排序区中

其他所有元素在未排序区

排序开始后

每次将未排序区第一个元素取出用于和 排序区中的元素比较

满足条件则 排序区中元素往后移一个位置

所有的数字都在一个数组中,两个区域是一个分水岭索引

第一步

取出未排序区的所有元素进行比较,i=1的原因 默认第一个元素就在排序区

for(int i = 1; i < array.Length; i++)

第二步

每一轮

取出排序区的最后一个元素索引

int sortIndex = i - 1;
int noSortNum = array[i];

第三步 在未排序区进行比较

移动位置

确定插入索引

循环停止的条件

1发现排序区中所有元素都已经比较完


2发现排序区中的元素不满足比较条件了

while (sortIndex >= 0 && array[sortIndex] > noSortNum) { //只要进了这个while循环 证明满足条件 //排序区中的元素 就应该往后退一格 array[sortIndex + 1] = array[sortIndex]; //移动到排序区的前一个位置 准备继续比较 --sortIndex; } array[sortIndex + 1] = noSortNum;


全程

for(int i = 1; i < array.Length; i++) { int sortIndex = i - 1; int noSortNum = array[i]; while (sortIndex >= 0 && array[sortIndex] > noSortNum) { array[sortIndex + 1] = array[sortIndex]; --sortIndex; } array[sortIndex + 1] = noSortNum; for(int i = 0; i < array.Length; i++) { Console.WriteLine(array[i]); }
http://www.jsqmd.com/news/780398/

相关文章:

  • 美国出行距离数据集分析报告-2019年国家级人口流动与出行行为统计数据
  • 自建Signal服务器:Signal-Bastion部署与私有安全通信实践
  • AI与数据库协同工作负载编排技术解析
  • Godot游戏集成Nakama服务器:开源后端引擎与实时对战开发指南
  • GPT-5.5代码能力突破:88.7%意味着什么?
  • 基于Scallop框架的智能对话机器人:神经符号AI的工程实践
  • 什么是数据接口
  • C++编写的项目案例有哪些?
  • ARM MPAMv2架构解析:硬件隔离与虚拟化扩展
  • 设备声振温一体化监测:24小时智能值守,告别隐患停机
  • 3D数字孪生项目 LCP 优化指南
  • 从JY901S数据到实际应用:STM32CubeMX HAL实现姿态解算与OLED显示(MPU6050升级指南)
  • 低轨卫星网络中的Web服务韧性优化与辐射感知路由技术
  • 基于微信小程序的小说阅读系统(30265)
  • 从NXP高管变动看科技公司销售与市场职能的合分之道
  • 组件与供应商管理(CSM)如何优化产品开发
  • 如何在多个异步请求中判断“至少一个有数据”或“全部为空”
  • Python新手入门:从Hello-Python项目到高效学习路径
  • 2026年4月市场可靠的实验室污水处理设备优质厂家推荐,实验室污水处理设备,实验室污水处理设备批发厂家找哪家 - 品牌推荐师
  • 基于LangChain与RAG架构构建私有知识库问答系统实践指南
  • openclaw 在windows+WSL2+docker部署基础版
  • 某白山小程序限制PC端调试
  • 基于Git与自动化脚本构建个人AI研究对话备份系统
  • 长白山小程序sign算法分析
  • TDAD:AI编程代理的回归测试优化方案
  • CasaOS应用商店仓库:从Docker Compose到一键部署的完整指南
  • 【ROS2实战笔记-15】ros2bag 的深度应用:从数据回放到系统级离线分析
  • 2026年靠谱的天津党建展厅展馆设计制作精选推荐榜 - 品牌宣传支持者
  • Godot游戏服务器开发实战:Nakama插件集成与实时功能实现
  • Python科学计算性能优化与核心技术解析