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         }
  • 相关阅读:
    大型网站应用之海量数据和高并发解决方案总结
    反转二叉树
    Spring bean循环依赖
    死磕Spring AOP (学习持续更新中。。)
    Context 初始化流程
    ConcurrentHashMap
    2-MySQL高级-事务-基本概念(1)
    1-MySQL高级-视图
    11-python基础—格式化的两种方式
    22-MySQL-Ubuntu-备份与恢复
  • 原文地址:https://www.cnblogs.com/BrokenIce/p/5426470.html
Copyright © 2011-2022 走看看