//工具类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 冒泡排序
{
class Employee
{
public string Name { get; private set; }
public int Salary { get; private set; }
public Employee(string name, int salary)
{
this.Name = name;
this.Salary = salary;
}
//如果e1大于e2,返回true,否则返回false
public static bool Compare(Employee e1, Employee e2)
{
if (e1.Salary > e2.Salary)
return true;
return false;
}
//重写ToString方法
public override string ToString()
{
return Name + ":" + Salary;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 冒泡排序
{
class Program
{
static void CommonSort<T>(T[] sortArray, Func<T, T, bool> comparMethod)
{
bool swapped = true;
do
{
swapped = false;
for (int i = 0; i < sortArray.Length - 1; i++)
{
if (comparMethod(sortArray[i], sortArray[i + 1]))
{
T temp = sortArray[i];
sortArray[i] = sortArray[i + 1];
sortArray[i + 1] = temp;
swapped = true;
}
}
} while (swapped);
}
static void Main(string[] args)
{
Employee[] employees = new Employee[]
{
new Employee("王1",12),
new Employee("王2",123),
new Employee("王3",23),
new Employee("王4",234),
new Employee("王5",56)
};
CommonSort<Employee>(employees, Employee.Compare);
foreach (Employee e in employees)
{
Console.WriteLine(e.ToString());
}
Console.ReadKey();
}
}
}