C#int 冒泡排序 通用

Int的冒泡排序扩展
{
class Bubbling
{
public string Name { get; private set; }
public int Salary { get; private set; }
public Bubbling(string name, int salary)
{
this.Name = name;
this.Salary = salary;
}
//定义一个Bool类型方法 如果a1大于a2就返回true 如果不是则返回false
public static bool Campar(Bubbling a1, Bubbling a2)
{
if (a1.Salary > a2.Salary) return true;
return false;
}
//重写tostring 返回字符串类型
public override string ToString()
{
return Name + "" + Salary;
}
}
}

Int的冒泡排序扩展
{
class Program
{

static void Main(string[] args)
{
Bubbling[] bubblings = new Bubbling[] {
new Bubbling("凹凸曼",100),
new Bubbling("小怪兽",30),
new Bubbling("吉娃娃",6898),
new Bubbling("王老吉",2),
new Bubbling("胡楼哇",20),
new Bubbling("老三",69),


};
CommonSoar<Bubbling>(bubblings, Bubbling.Campar);
foreach (Bubbling item in bubblings)
{
Console.WriteLine(item);
}
Console.ReadKey();
}
//写一个泛型的方法数组
static void CommonSoar<T>(T[] sortArray,Func<T,T,bool> CamparMethod)
{
bool swapped = true;
do
{
swapped = false;
for (int i = 0; i < sortArray.Length - 1; i++)
{
if (CamparMethod(sortArray[i], sortArray[i + 1]))
{
T temp = sortArray[i];
sortArray[i] = sortArray[i + 1];
sortArray[i + 1] = temp;
swapped = true;
}
}
} while (swapped);
}
}
}

 

posted @ 2019-07-23 10:55  北特  阅读(415)  评论(0编辑  收藏  举报