#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
C#排序算法一 希尔排序
最新推荐文章于 2025-02-12 16:28:29 发布