【C# 排序】插入排序法
2022/6/12 1:22:44
本文主要是介绍【C# 排序】插入排序法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
概览
插入排序法
算法思想:每次将一个待排序的元素按其关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成。
例如:元素13要排序时候,可以认为13之前元素都已经排序完成,此时只要把13与之前元素一 一比较,然后找到合理位置插入。
代码
空间复杂度:(O(1)
时间复杂度︰ O(n)~O(n2),可以利用折半查找,优化插入排序法。
稳定性:稳定
折半查找,优化插入排序法
当查找到元素和插入的元素相同,继续查找,直到low>hight,然后让low之后的所有元素右移一个位置(目的保存稳定性),插入元素。
当A[mid]=(A[0])时,为了保证算法的“稳定性”,应继续在mid)所指位置右边寻找插入位置。
比起“直接插入排序”,比较关键字的次数减少,但是移动元素的次数没变,整体来看时间复杂度依然是O(n2)
如下图:
当找到60的位置,此时不能停止查找,应该继续查找
继续查找
low>high 停止查找,将low之后的所有元素后移一个位置
60的插入排序完成
代码如下:
链表的插入排序
这篇关于【C# 排序】插入排序法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-03-01沐雪多租宝商城源码从.NetCore3.1升级到.Net6的步骤
- 2024-12-06使用Microsoft.Extensions.AI在.NET中生成嵌入向量
- 2024-11-18微软研究:RAG系统的四个层次提升理解与回答能力
- 2024-11-15C#中怎么从PEM格式的证书中提取公钥?-icode9专业技术文章分享
- 2024-11-14云架构设计——如何用diagrams.net绘制专业的AWS架构图?
- 2024-05-08首个适配Visual Studio平台的国产智能编程助手CodeGeeX正式上线!C#程序员必备效率神器!
- 2024-03-30C#设计模式之十六迭代器模式(Iterator Pattern)【行为型】
- 2024-03-29c# datetime tryparse
- 2024-02-21list find index c#
- 2024-01-24convert toint32 c#