BubbleSorter.cs
上传用户:lxycoco
上传日期:2022-07-21
资源大小:38457k
文件大小:2k
源码类别:

C#编程

开发平台:

Others

  1. using System;
  2. namespace BubbleSorter
  3. {
  4.   delegate bool CompareOp(object lhs, object rhs);
  5.   class MainEntryPoint
  6.   {
  7.     static void Main()
  8.     {
  9.       Employee [] employees =
  10.             {
  11.               new Employee("Bugs Bunny", 20000),
  12.               new Employee("Elmer Fudd", 10000),
  13.               new Employee("Daffy Duck", 25000),
  14.               new Employee("Wiley Coyote", (decimal)1000000.38),
  15.               new Employee("Foghorn Leghorn", 23000),
  16.               new Employee("RoadRunner'", 50000)};
  17.       CompareOp employeeCompareOp = new CompareOp(Employee.RhsIsGreater);
  18.       BubbleSorter.Sort(employees, employeeCompareOp);
  19.       for (int i=0 ; i<employees.Length ; i++)
  20.         Console.WriteLine(employees[i].ToString());
  21.       Console.ReadLine();
  22.     }
  23.   }
  24.   class Employee // : object
  25.   {
  26.     private string name;
  27.     private decimal salary;
  28.     public Employee(string name, decimal salary)
  29.     {
  30.       this.name = name;
  31.       this.salary = salary;
  32.     }
  33.     public override string ToString()
  34.     {
  35.       return string.Format(name + ", {0:C}", salary);
  36.     }
  37.     public static bool RhsIsGreater(object lhs, object rhs)
  38.     {
  39.       Employee empLhs = (Employee) lhs;
  40.       Employee empRhs = (Employee) rhs;
  41.       return (empRhs.salary > empLhs.salary) ? true : false;
  42.     }
  43.   }
  44.   class BubbleSorter
  45.   {
  46.     static public void Sort(object [] sortArray, CompareOp gtMethod)
  47.     {
  48.       for (int i=0 ; i<sortArray.Length ; i++)
  49.       {
  50.         for (int j=i+1 ; j<sortArray.Length ; j++)
  51.         {
  52.           if (gtMethod(sortArray[j], sortArray[i]))
  53.           {
  54.             object temp = sortArray[i];
  55.             sortArray[i] = sortArray[j];
  56.             sortArray[j] = temp;
  57.           }
  58.         }
  59.       }
  60.     }
  61.   }
  62. }