zoukankan      html  css  js  c++  java
  • 委托结合泛型实现的冒泡排序算法

     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     }
  • 相关阅读:
    SQL查询版本信息语句
    一个简单的 分组 计算组内记录数占比的 语句
    MSSQL 判断表是否存在的两种方法
    兼容IEFireFoxChrome的背景音乐播放
    [C# 基础知识系列]专题二:委托的本质论
    [C# 基础知识系列]专题八: 深入理解泛型(二)
    [C# 基础知识系列]专题九: 深入理解泛型可变性
    [C# 基础知识系列]专题一:深入解析委托——C#中为什么要引入委托
    [C# 基础知识系列]专题六:泛型基础篇——为什么引入泛型
    [C# 基础知识系列]专题四:事件揭秘
  • 原文地址:https://www.cnblogs.com/Jayan/p/1755712.html
Copyright © 2011-2022 走看看