所谓冒泡排序就是将相邻两个数进行比较,讲较小的掉到前头。
namespace ConsoleApplication1
{
class 委托和事件
{
public static void arraySort(int[] items)//传递的是整形数组
{
int i, j, item;
for (i = 0; i <= items.Length - 1; i++)
{
for (j = 0; j <items.Length - 1 - i; j++)
{
item = items[j];
items[j] = items[j + 1];
items[j + 1] = item;
}
}
Console.WriteLine("冒泡好的数组为:");
foreach (int index in items)
{
Console.Write(index);
}
}
}
}
改方法是对一个整形数组进行降序排序,但是如果你想升序排列,有两种方案,一种是将小于元算符修改为大于,另一种是用一个参数来实现。代码实现为:
namespace ConsoleApplication1
{
class 委托和事件
{
//定义排序类型
public enum sorType{ Ascending, Descending }
public static void arraySort(int[] items,sorType sortOrder)
{
int i, j, item;
for (i = 0; i <= items.Length - 1; i++)
{
for (j = 1; j <= items.Length - 1 - i;j++ )
{
switch(sortOrder)//判断是那种类型
{
case sorType.Ascending : //升序
if (items[j - 1] > items[j])
{
item = items[j - 1];
items[j - 1] = items[j];
items[j] = item;
}
{}
break;
case sorType.Descending://降序
if(items[j-1]<items[j])
{
item = items[j - 1];
items[j - 1] = items[j];
items[j] = item;
}
break;
}
}
}
Console.WriteLine("冒泡好的数组为:");
foreach (int index in items)
{
Console.Write(index);
}
}
}
}
然而,上述代码只是照顾了两种可能的排序顺序,假如要实现按字母,按随即顺序,这种方法就会变得非常恐怖。下面是委托排上用场的时候
namespace ConsoleApplication1
{
class 委托和事件
{
//定义委托
public delegate bool delegateSort(int first,int second);
//定义方法,实现顺序排序
public static bool functionSort(int first,int second)
{
return(first>second);
}
//定义方法,实现倒序排序
public static bool functionDescSort(int first ,int second)
{
return(first<second);
}
//定义方法,实现按字母排序
public static bool functionAlpha(int first,int second)
{
int comparison;
comparison=(first.ToString().CompareTo(second.ToString()));
return(comparison>0);
}
public static void Oreder(int[] items, delegateSort funciontSort)//让委托指向方法
{
int i, j, m;
for (i = 0; i <= items.Length - 1; i++)
{
for (j = 0; j < items.Length - 1 - i; j++)
{
if (funciontSort(items[j], items[j + 1]))
{
m = items[j];
items[j] = items[j + 1];
items[j+1] = m;
}
}
}
Console.WriteLine("排序好的数据");
foreach(int indxe in items)
{
Console.Write(indxe);
}
}
}
}
可以看出,和前面的方法相比较,现在添加一个附加的排序机制是多么的简单。