首先,要写一个基类:
class CArray
{
private int[] arr;
private int ElementNum;
private int upper;
public CArray(int size)
{
arr = new int[size];
ElementNum = 0;
upper = size - 1;
}
public void Insert(int item)
{
for (int i = 0; i <= upper; i++)
{
arr[ElementNum] = item;
}ElementNum++;
}
public void Clear()
{
for (int i = 0; i <= upper; i++)
{
arr[ElementNum] = 0;
}
ElementNum = 0;
}
public void Display()
{
for (int i = 0; i <= upper; i++)
Console.Write(arr[i] + " ");
Console.Write("/n");
}
//冒泡排序:
public void BubbleSort()
{
int temp;
for (int outer = 1; outer <= upper; outer++)
{
for (int inner = 0; inner <= upper; inner++)
{
if (arr[inner] > arr[outer])
{
temp = arr[inner];
arr[inner] = arr[outer];
arr[outer] = temp;
}
}
}
}
//选择排序:
public void SelectionSort()
{
int temp;
int min;
for (int outer = 1; outer <= upper; outer++)
{
temp = arr[outer];
min = outer;
for (int inner = outer + 1; inner <= upper; inner++)
{
if (arr[inner] <= arr[min])
{
min = inner;
}
}
temp = arr[outer];
arr[outer] = arr[min];
arr[min] = temp;
}
}
//插入排序:
public void InsertionSort()
{
int temp; int outer; int inner;
for (outer = 1; outer <= upper; outer++)
{
temp = arr[outer];
inner = outer;
while (inner > 0 && arr[inner - 1] >= temp)
{
arr[inner] = arr[inner - 1];
inner -= 1;
}
arr[inner] = temp;
}
}
}
测试:
static void Main(string[] args)
{
CArray ca = new CArray(10);
Random rd = new Random();
for (int i = 0; i < 10; i++)
ca.Insert(Convert.ToInt32(rd.NextDouble()*100));
Console.Write("未排序的:");
ca.Display();
Console.Write("经过冒泡排序:");
ca.BubbleSort();
ca.Display();
Console.Write("经过选择排序:");
ca.SelectionSort();
ca.Display();
Console.Write("经过插入排序:");
ca.Display();
}
结果:
未排序的:49 5 78 46 46 49 73 33 75 23
经过冒泡排序:5 23 33 46 46 49 49 73 75 78
经过选择排序:5 23 33 46 46 49 49 73 75 78
经过插入排序:5 23 33 46 46 49 49 73 75 78
请按任意键继续. . .