小小飞鹰

     中国人缺少的是步骤,太急。练太极!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[练手4]插入排序

Posted on 2008-11-21 17:26  小小飞鹰  阅读(218)  评论(0编辑  收藏  举报

目      标      用C#实现插入排序

思      想    

将n个元素的数列分为已有序和无序两个部分,如下所示:

  {,{a2,a3,a4,…,an}}

  {{a1(1),a2(1)},{a3(1),a4(1) …,an(1)}}

  …

  {{a1(n-1),a2(n-1) ,…}, {an(n-1)}}

  每次处理就是将无序数列的第一个元素与有序数列的元素从后往前逐个进行比较,找出插入位置,将该元素插入到有序数列的合适位置中。

实现
        public void Sort(int[] intArray)
        {
            int intTemp;
            int j;

            //默认第一个已排序
            for (int i = 1; i < intArray.Length; i++)
            {
                intTemp = intArray[i];
                j = i;

                while (j > 0 && intArray[j - 1] > intTemp)
                {
                    //如果当前值大于intTemp(有序前的最大值),则依次判断前面的序列插入到指定位置中
                    intArray[j] = intArray[j - 1];
                    j--;
                }
                intArray[j] = intTemp;
            }
        }

代码下载  插入排序代码