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

相关推荐
203号居民几秒前
LeetCode hot 100 —41. 缺失的第一个正数
数据结构·算法·leetcode
专注仿真2 小时前
问答大模型技术方案算法实现-熵权法融合算法 + 交叉编码器重排算法
人工智能·python·算法·语言模型·问答大模型关键算法·熵权融合算法·交叉编码器重排算法
zjnlswd2 小时前
C#学习笔记4
笔记·学习·c#
地平线开发者3 小时前
量化为什么会有损失:从量化误差到精度下降
算法
曹牧4 小时前
C#:List<string>特定格式输出
windows·c#
手写码匠4 小时前
华为云Flexus+DeepSeek征文|Dify 多 Agent 会话管理与上下文工程实战:让智能体“记住该记住的,忘掉该忘掉的“
人工智能·深度学习·算法·aigc
2401_862880824 小时前
数据结构 --- 栈
c语言·数据结构·算法
致Great4 小时前
Qwen3.8-27B 接入 DSH 全流程实测:写代码、跑长任务,都没问题
算法
Tisfy5 小时前
LeetCode 3471.找出最大的几近缺失整数:三种情况判断
算法·leetcode·题解·分类讨论
Z5998178415 小时前
c#软件开发学习笔记--Modbus-TCP/UDP网口通讯
笔记·学习·c#