All pastes #33216 Raw Edit

Unnamed

public text v1 · immutable
#33216 ·published 2005-12-10 19:35 UTC
rendered paste body
using System;

interface ISortable
{
	void Sort ();
}

abstract class BaseSort
{
	protected int[] data;
	
	public BaseSort(int[] newData)
	{
		data = newData;
	}
	
	public override string ToString()
	{
		string ret = "{ ";
		foreach (int num in data)
			ret += num + " ";
		ret += "}";
		return ret;
	}
	
	protected int Min (int index)
	{
		int min = index;
		for (int i=index; i<data.Length; i++)
		{
			if (data[i] <= data[min])
				min = i;
		}
		
		return min;
	}
	
	protected void Swap (int p1, int p2)
	{
		int tmp = data[p1];
		data[p1] = data[p2];
		data[p2] = tmp;
	}
}

class InsertionSort : BaseSort, ISortable
{
	public InsertionSort(int[] newData): base (newData){}
	
	public void Sort()
	{
	}
}

class SelectionSort : BaseSort, ISortable
{
	public SelectionSort(int[] newData): base (newData){}
	
	public void Sort()
	{
		for (int i=0; i<data.Length; i++)
		{
			Swap(i, Min(i));
		}
	}
}

class Program
{
	public static void Main ()
	{
		int[] data = {2, 5, 1, 2, 8, 34, -1};
		SelectionSort ss = new SelectionSort(data);
		Console.WriteLine("Before: {0}", ss);
		ss.Sort();
		Console.WriteLine("After:  {0}", ss);
	}
}