C#排序算法一 希尔排序

 #region 希尔排序
         ///我理解的希尔排序
        /// <summary>
        /// 先取一个正整数d1<n,把所有序号相隔d1的数组元素放一组,
        /// 组内进行直接插入排序;然后取d2<d1,
        /// 重复上述分组和排序操作;直至di=1,即所有记录放进一个组中排序为止 
        /// </summary>
        /// <param name="a"></param>
         protected static void ShellSort(int[] a)
         {
             int inc = a.Length;
             for (inc=inc/2; inc > 0; inc = inc / 2)//控制步长因子
             { 
                //里面的就是插入排序的算法代码
                 for (int i = inc; i < a.Length; i++)
                 {
                     for (int j = 0; j <= i; j=j+inc)
                     {
                         if (a[i] < a[j])
                         {
                             int k = a[i];
                             a[i] = a[j];
                             a[j] = k;
                         }
                     }
                 }

             }
 
             foreach (int x in a)
                 Console.WriteLine(x);
         }
        #endregion
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值