欢迎光临散文网 会员登陆 & 注册

升级冒泡排序:比较工资(string+int)

2023-03-24 00:58 作者:此城过客  | 我要投稿

给员工写一个单独的类:

internal class Employee

{

        public string Name { get; private set; }

        public double Salary { get; private set; }

        public Employee(string name, double salary)

        { Name = name ; Salary = salary; }


         public static bool Compare(Employee e1, Employee e2)

         {

                 return e1.Salary > e2.Salary;//.Salary就是按工资比较

                                                         //.Name就是按名字比较

         }

}


=======================================================

class Program//主程序的类

{

        //T代表任意类型的数据类型

        //这两个T,代表两个Employee类型的数据

         public static void Sort<T>(T[] data, Func<T, T, bool> compare)

         {

                 bool swapped = true;

                 do

                 {

                         swapped = false;

                         for (int i = 0; i < data.Length - 1; i++)

                         {

                                if(compare(data[i],data[i+1]))

                                {

                                       T temp = data[i];//因为数据是T类型,所以这里不能是int,必须是T

                                       data[i] = data[i + 1];

                                       data[i + 1] = temp;

                                       swapped = true;

                                 }

                         }

                 } while (swapped);

          }

          static void Main(string[] args)//主函数

          {

                 Employee[] employees = { 

                        new Employee("Sunny",20000),

                        new Employee("John",10000),

                        new Employee("Bob",13000),

                        new Employee("Tom",18300),

                        new Employee("Michael",23000),

                        new Employee("lisa",31000),

                   };

           

                  Sort<Employee>(employees,Employee.Compare);

                  foreach (Employee emp in employees)

                  {

                         Console.WriteLine(emp.Name+":"+emp.Salary);

                   }

          }

}

升级冒泡排序:比较工资(string+int)的评论 (共 条)

分享到微博请遵守国家法律