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;
        }
    }
相关推荐
阿昭L19 分钟前
堆结构与堆排序
数据结构·算法
2***574221 分钟前
人工智能在智能投顾中的算法
人工智能·算法
草莓熊Lotso26 分钟前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题
开发语言·c++·经验分享·笔记·其他·算法·动态规划
mit6.8247 小时前
bfs|栈
算法
tobebetter95277 小时前
How to manage python versions on windows
开发语言·windows·python
CoderYanger8 小时前
优选算法-栈:67.基本计算器Ⅱ
java·开发语言·算法·leetcode·职场和发展·1024程序员节
jllllyuz8 小时前
Matlab实现基于Matrix Pencil算法实现声源信号角度和时间估计
开发语言·算法·matlab
稚辉君.MCA_P8_Java8 小时前
DeepSeek 插入排序
linux·后端·算法·架构·排序算法
多多*8 小时前
Java复习 操作系统原理 计算机网络相关 2025年11月23日
java·开发语言·网络·算法·spring·microsoft·maven
q***71858 小时前
windows下安装并使用node.js
windows·node.js