C#算法之插入排序算法

算法系列:各位朋友,我们继续C#算法的学习之路。今天同样是一个简单直观的排序算法--插入排序。插入排序的原理是通过构建有序序列,对未排序序列进行扫描,找到相应位置并插入。插入排序,在数据规模较小或者部分数据已经处于有序的情况下,其效率很高。

插入排序的事件复杂度不唯一,平均值为n的平法,其中n是列表的长度。空间复杂度为1。

C#简单例程如下:

cs 复制代码
    static void Main()
    {
        int[] array = { 3, 5, 1, 4, 6, 2 };
        Console.WriteLine("原始数组:");
        foreach (int item in array)
        {
            Console.Write(item + " ");
        }
        Console.WriteLine();
        
        InsertionSort(array);
        
        Console.WriteLine("排序后的数组:");
        foreach (int item in array)
        {
            Console.Write(item + " ");
        }
    }

    static void InsertionSort(int[] array)
    {
        int n = array.Length;
        for (int i = 1; i < n; i++)
        {
            int key = array[i];
            int j = i - 1;
            
            // 将较大的元素向后移动
            while (j >= 0 && array[j] > key)
            {
                array[j + 1] = array[j];
                j--;
            }
            
            // 将key插入到正确的位置
            array[j + 1] = key;
        }
    }
相关推荐
刘欣的博客2 小时前
C# CS架构程序发版升级的走数据库方案
c#·单文件升级自己的方式
天天爱吃肉82182 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车
alphaTao2 小时前
LeetCode 每日一题 2026/2/2-2026/2/8
算法·leetcode
甄心爱学习2 小时前
【leetcode】判断平衡二叉树
python·算法·leetcode
颜酱2 小时前
从二叉树到衍生结构:5种高频树结构原理+解析
javascript·后端·算法
不知名XL3 小时前
day50 单调栈
数据结构·算法·leetcode
@––––––3 小时前
力扣hot100—系列2-多维动态规划
算法·leetcode·动态规划
Yorlen_Zhang3 小时前
Python Tkinter Text 控件完全指南:从基础编辑器到富文本应用
开发语言·python·c#
xsyaaaan3 小时前
代码随想录Day31动态规划:1049最后一块石头的重量II_494目标和_474一和零
算法·动态规划
不绝1913 小时前
C#进阶:预处理指令/反射,Gettype,Typeof/关键类
开发语言·c#