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

 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 {  get private   set ; }
53           public   decimal  Salary {  get private   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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值