龙空技术网

c# 常用十大排序算法 -- 希尔排序(5)

Louis技术站 5

前言:

此时咱们对“希尔排序算法代码c”大致比较关切,各位老铁们都想要了解一些“希尔排序算法代码c”的相关文章。那么小编也在网络上搜集了一些对于“希尔排序算法代码c””的相关知识,希望同学们能喜欢,姐妹们快快来学习一下吧!

希尔排序:是插入排序的一种改进方法。通过增量数组进行对数组的排序。

/// <summary>        /// 5.希尔排序        /// </summary>        /// <param name="array">排序数组</param>        /// <param name="func">委托方法</param>        public static void Shell_Sort(E[] array, Func<E, E, bool> func)        {                        int length = array.Length;            //分段数            //int step = array.Length%PART ==0?array.Length/3:array.Length/3+1;            int step = length / 2;            while(step >1)            {              //循环                for(int i = step; i < length; i++)                {                    E currentElement = array[i];                    int preIndex = i - step;                  //通过step计算位置                    while(preIndex >=0 && func(array[preIndex], currentElement))                    {                        array[preIndex + step] = array[preIndex];                        preIndex -= step;                    }                    array[preIndex + step] = currentElement;                }                step /= 2;            }        }

标签: #希尔排序算法代码c