• 排序算法之插入排序


    1.基本思路

    生活中最简单的例子就是玩扑克牌了,比如第一张牌拿到的是3,第二张是2,那么就把2放在三的前面,第三张拿的6就放在3的后面,现在手上牌的顺序是:2,3,6,第四张拿的1,因为1比6小,将6后移一位,接着比较1和3的位置,后移3,比较2和1,后移2,然后将1放在最前面的位置,这就是插入排序的基本思路。

     

    2.代码实现

    namespace InsertSort
    {
        class Program
        {
            static void Main(string[] args)
            {
                Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
                int[] arry = { 9, 7, 12, 6, 8, 1 };
                Console.WriteLine("-------------排序前--------------");
                for (int i = 0; i < arry.Length; i++)
                {
                    Console.Write(arry[i] + " ");
                }
                InsertSort(arry);
                Console.WriteLine("
    -------------插入排序 排序后--------------");
                for (int i = 0; i < arry.Length; i++)
                {
                    Console.Write(arry[i] + " ");
                }
                Console.ReadKey();
            }
            public static  void InsertSort(int[] arry)
            {
                if (arry.Length == 0 || arry == null)
                    return;
                for (int i = 1; i < arry.Length ; i++)
                {
                    var target = arry[i];
                    var j = i;
                    while (j > 0&&arry[j - 1] > target)
                    {
                        arry[j] = arry[j - 1];
                        j--;
                    }
                    arry[j] = target;
                }
            }
        }
    }
    

      

  • 相关阅读:
    Domain Logic approaches
    Comparing Spring AOP and AspectJ
    CDI Features
    Java Design Patterns
    第二阶段:代码片段
    第一阶段:学生在线系统需求分析报告
    load data语句实验报告
    Sping AOP Capabilities and Goals
    Java Design Patterns
    CDI Features
  • 原文地址:https://www.cnblogs.com/smilejeffery/p/7218380.html
Copyright © 2020-2023  润新知