📄 shellsorter.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 + -