委托(冒泡排序)

委托


前言

什么是委托?
讲方法作为参数传递,赋值一个方法的引用

一、冒泡排序的思想

  • 声明一个数组 数组的索引由0-array.Length-1 比较array[i]和array[i+1]的大小 若array[i]>array[i+1] 则将两者交换位置
    再比较array[i+1]和array[i+2]的大小依次进行,经过一轮循环 数组中的max值会被排在数组的最后位置
    然后再次循环直至排序完成

二、对冒泡排序的扩展

1.对int类型的冒泡排序

代码如下(示例):

static void IntSort( int[] sortArray)
bool swapped =true;
do{
            swapped=false;
            for(int i=0;i<sortArray.Length-1;i++)
            {
                if(sortArray[i]>sortArray[i+1])
                {
                   temp=sortArray[i];
                   sortArray[i]=sortAray[i+1];
                   sortArray[i+1]=temp;
                   swapped=true;
                 }
             }
     }while(swapped)
             
             

2.对任何类型进行冒泡排序(雇员类)

Name Salary 何时大写何时小写
重写tostring方法
代码如下(示例):

class Employee
{
    public string Name{get;private set;}
    
    public decimal salary{get;private set;}

    public Employee(string name,decimal salary)
    {
       this name=name;
       this salary=salary;
    }
    public static bool Compare(Employee e1,Employee e2)
    {
       if(e1>e2)
       {return true;}
       
       return false;
     }
     
    public override string ToString()
    {
      return Name+":"+Salary;
    }
    
 }
     

commonsort中的function委托指向employee类中的compare方法


class Program
{
     static void CommonSort<T>(T[] sortArray,Func<T,T,bool> compareMethod)
     {
        bool swapped =true;
        do{
            swapped=false;
            for(int i=0;i<sortArray.Length-1;i++)
            {
                if(compareMethod(sortArray[i],sortArray[i+1])
                {
                   T temp=sortArray[i];
                   sortArray[i]=sortAray[i+1];
                   sortArray[i+1]=temp;
                   swapped=true;
                 }
             }
         }while(swapped)
      static void Main(string[] args)
      {
        Employee[] employees=new Employee[]
        {
           new Employee("dsf",12),
           new Employee("dsffw",14),
           new Employee("dsfwwd",15)
        }
 
         CommonSort<Employee>(employees,Employee.Compare);
         foreach(Employee em in employees)
         {
               Console.WriteLine(em.ToString());
         }
       }


}

总结

提示:这里对文章进行总结:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值