⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shellsorter.cs

📁 5种.net写的排序的方法
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;

namespace IAXK.Sys
{
    /// <summary>
    /// 希尔排序
    /// </summary>
    /// <typeparam name="T"></typeparam>
    [Serializable]
    public class ShellSorter<T>:Sorter<T> where T:IComparable,IComparable<T>
    {
        /// <summary>
        /// 排序算法
        /// </summary>
        /// <param name="v"></param>
        /// <param name="ot"></param>
        protected override void Algorithm(T[] v, OrderType ot)
        {   
            int d = v.Length;
            while (d > 1)
            {
                d /= 2;
                bool rpt = true;
                do
                {
                    rpt = true;
                    for (int i = 0; i < (v.Length - d); i++)
                    {
                        int j = i + d;
                        if (CompareValue(v[i], v[j], ot) > 0)
                        {
                            Swap(ref v[i], ref v[j]);                            
                            rpt = false;
                        }
                    }
                }
                while (!rpt);
            }//end of while d>1            
        }

    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -