折半插入排序算法(改进的直接插入排序算法)


直接插入排序算法,是一个查找和插入的过程,其中的查找过程可以使用折半查找方法来代替,因为插入排序的序列也是一个有序的序列

直接插入排序算法的连接

有序序列的折半查找算法的链接

c#代码
  #region 折半插入排序算法
        public static void HalfInsertSort(ref int[] array)
        {
            for(int i=2;i<array.Length;++i)
            {
                array[0] = array[i]; //或者也可以添加if (array[i] < array[i - 1])先行判断
                int low = 1;
                int high = i - 1;
                while(low <= high)
                {
                    int mid = (low + high) / 2;
                    if (array[0] < array[mid]) high = mid - 1;
                    else low = mid + 1;
                }
                int j=0;
                for (j = i - 1; j >= high + 1; --j)
                {
                    array[j + 1] = array[j];
                }
                array[j + 1] = array[0];
            }
        }
            #endregion

本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

posted @ 2010-08-23 23:27  音乐啤酒  阅读(378)  评论(3编辑  收藏  举报