namespace ShellSortAlgorithm
{
public class CArray
{
private int[] arr;
private int upper;
private int numElement;
public CArray(int size)
{
arr = new int[size];
upper = size - 1;
numElement = 0;
}
public void Insert(int item)
{
arr[numElement] = item;
numElement++;
}
public void DisplayElement()
{
for (int i = 0; i <= upper; i++)
{
Console.Write(arr[i]+" ");
}
}
public void Clear()
{
for (int i = 0; i <= upper; i++)
{
arr[i] = 0;
}
numElement = 0;
}
public void ShellSort()
{
int inner, temp;
int h = 1;
while (h < numElement / 3)
{
h = h * 3 + 1;
}
while (h > 0)
{
for (int outer = h; outer <= numElement-1; outer++)
{
temp = arr[outer];
inner = outer;
while ((inner > h - 1) && arr[inner - h] >= temp)
{
arr[inner] = arr[inner - h];
inner -= h;
}
arr[inner] = temp;
}
h = (h - 1) / 3;
}
}
}
class Program
{
static void Main(string[] args)
{
const int size = 19;
CArray theArray = new CArray(size);
Random rd = new Random(100);
for (int i = 0; i < size; i++)
{
theArray.Insert((int)(rd.NextDouble() * 100));
}
Console.WriteLine();
theArray.DisplayElement();
Console.WriteLine();
theArray.ShellSort();
theArray.DisplayElement();
Console.WriteLine();
}
}
}
Tuesday, October 21, 2008
Subscribe to:
Posts (Atom)

