委托结合泛型实现的冒泡排序算法

本文介绍了一个使用C#实现的冒泡排序算法示例,该算法用于对包含多个员工对象的数组按薪资进行排序。示例中定义了Employee类,包括姓名和薪资属性,并实现了自定义的比较方法CompareSalary,用以决定排序顺序。
 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             Employee[] employees =
 6             {
 7             new Employee("Bugs Bunny"20000),
 8             new Employee("Elmer Fudd"10000),
 9             new Employee("Daffy Duck"25000),
10             new Employee("Wile Coyote"1000000.38m),
11             new Employee("Foghorn Leghorn"23000),
12             new Employee("RoadRunner"50000)
13             };
14             BubbleSorter.Sort(employees, Employee.CompareSalary);
15             foreach (var employee in employees)
16             {
17                 Console.WriteLine(employee);
18             }
19             Console.ReadLine();
20         }
21     }
22 
23     class BubbleSorter
24     {
25         static public void Sort<T>(IList<T> sortArray, Func<T, T, bool> comparison)
26         {
27             bool swapped = true;
28             do
29             {
30                 swapped = false;
31                 for (int i = 0; i < sortArray.Count - 1; i++)
32                 {
33                     if (comparison(sortArray[i + 1], sortArray[i]))
34                     {
35                         T temp = sortArray[i];
36                         sortArray[i] = sortArray[i + 1];
37                         sortArray[i + 1= temp;
38                         swapped = true;
39                     }
40                 }
41             } while (swapped);
42         }
43     }
44 
45     class Employee
46     {
47         public Employee(string name, decimal salary)
48         {
49             this.Name = name;
50             this.Salary = salary;
51         }
52         public string Name { getprivate set; }
53         public decimal Salary { getprivate set; }
54         public override string ToString()
55         {
56             return string.Format("{0}, {1:C}", Name, Salary);
57         }
58         public static bool CompareSalary(Employee e1, Employee e2)
59         {
60             return e1.Salary < e2.Salary;
61         }
62     }

 

转载于:https://www.cnblogs.com/Jayan/archive/2010/06/10/1755712.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值