排序算法之插入排序

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("\n-------------插入排序 排序后--------------");
            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;
            }
        }
    }
}

  

 

posted @ 2017-07-21 16:26  一个空白格  阅读(221)  评论(0编辑  收藏  举报