using System;
namespace Algorithme
{
public class MainClass
{
public static void Main()
{
int[] iArrary = new int[] {1,5,3,6,10,55,9,2,87,12,34,75,33,47};
ShellSorter sh = new ShellSorter();
sh.Sort(iArrary);
for (int m = 0; m <= 13; m++)
{
Console.WriteLine("{0}", iArrary[m]);
}
Console.ReadLine();
}
}
class ShellSorter
{
public void Sort(int[] list)
{
int inc;
for (inc = 1; inc <= list.Length / 9; inc = 3 * inc + 1) ;
{
for (; inc > 0; inc /= 3)
{
for (int i = inc + 1; i <= list.Length; i += inc)
{
int t = list[i - 1];
int j = i;
while ((j > inc) && (list[j - inc - 1] > t))
{
list[j - 1] = list[j - inc - 1];
j -= inc;
}
list[j - 1] = t;
}
}
}
}
}
}