zoukankan      html  css  js  c++  java
  • C# 插入排序

    插入排序

     

    插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

    算法步骤:

    1)将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。

    2)从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)

    算法分析:

      平均时间复杂度:O(n²)

      空间复杂度:O(1)  (用于记录需要插入的数据)

      稳定性:稳定

    以下代码仅供参考

     1      public static void Main(string[] args)
     2         {
     3             int[] arrNumber = new int[] { 3, 2, 1, 4, 5, 6 };
     4             InsertSort(arrNumber);
     5             foreach (int i in arrNumber)
     6             {
     7                 Console.WriteLine(i);
     8             }
     9             Console.ReadKey();
    10         }
    11         public static void InsertSort(int[] arrNumber)
    12         {
    13             for (int i = 1; i < arrNumber.Length; i++)
    14             {
    15                 int temp = arrNumber[i];
    16                 int j;
    17                 for (j = i; j>0&&arrNumber[j-1]>temp; j--)
    18                 {
    19                     arrNumber[j] = arrNumber[j - 1]; 
    20                 }
    21                 arrNumber[j] = temp;
    22             }
    23         }
  • 相关阅读:
    NOI2004 郁闷的出纳员 [Splay]
    关押罪犯 [二分]
    SCOI2010 传送带 [三分/模拟退火]
    POI2007 MEG-Megalopolis [树状数组]
    食物链 [并查集]
    SDOI2011 染色 [树链剖分]
    国家集训队 数颜色 [莫队]
    JSOI2008 星球大战 [并查集]
    [NOI2002] 银河英雄传说 (带权并查集)
    种树 [堆]
  • 原文地址:https://www.cnblogs.com/BrokenIce/p/5426470.html
Copyright © 2011-2022 走看看