- using System;
- namespace ShellSorter
- {
- public 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;
- }
- }
- }
- }
- public class MainClass
- {
- public static void Main()
- {
- int[] iArrary=new int[]{1,5,13,6,10,55,99,2,87,12,34,75,33,47};
- ShellSorter sh=new ShellSorter();
- sh.Sort(iArrary);
- for(int m=0;m<iArrary.Length;m++)
- {
- Console.Write("{0} ",iArrary[m]);
- Console.WriteLine();
- }
- }
- }
- }