探讨如何用委托处理排序
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
namespaceConsoleApplication1
{
class冒泡排序
{
//首先要了解冒泡排序,其实很简单就是索引前面的跟后面的比较,如果比后面的大2个值的位置就进行调换
staticvoidMain()
{
int[]str={0,14,3,6,1,30,10,9,28};
for(inti=0;i<str.Length;i++)
{
for(intj=i+1;j<str.Length;j++)
{
if(str[j]<str[i])
{
intindex=str[i];
str[i]=str[j];
str[j]=index;
}
}
}
for(intm=0;m<str.Length;m++)
{
Console.WriteLine(str[m]);
}
}
}
}
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Text;
namespaceConsoleApplication1
{
publicdelegateboolDelegateTest(objectobj1,objectobj2);
classClass1
{
staticvoidMain()
{
Employee[]Employees=
{
newEmployee("huguo",1000000),
newEmployee("lili",20000),
newEmployee("lulu",30000),
newEmployee("xixi",50000),
newEmployee("jianjian",10000),
newEmployee("yoyo",9000)
};
//委托DelegateTest代理的方法是Greate
DelegateTestMyTest=newDelegateTest(Employee.Greate);
SorterMySort=newSorter();
//冒泡算法中第一个参数是对应Employees数组信息,第二个参数是委托
MySort.Sort(Employees,MyTest);
for(intm=0;m<Employees.Length;m++)
{
Console.WriteLine(Employees[m].ToString());
}
}
}
classEmployee
{
publicstringName;
publicintSalary;
publicEmployee(stringName,intSalary)
{
this.Name=Name;
this.Salary=Salary;
}
//用override重写string方法
publicoverridestringToString()
{
returnstring.Format(Name+",{0:C},",Salary);
}
//定义一个方法,如果obj2传过来的Salary大于obj1就返回true;
publicstaticboolGreate(objectobj1,objectobj2)
{
EmployeeEmployee1=(Employee)obj1;
EmployeeEmployee2=(Employee)obj2;
return(Employee2.Salary>Employee1.Salary)?true:false;
}
}
classSorter
{
publicvoidSort(object[]ArrayObj,DelegateTestTest)
{
//下面就是冒泡算法啦
for(inti=0;i<ArrayObj.Length;i++)
{
for(intj=i+1;j<ArrayObj.Length;j++)
{
if(Test(ArrayObj[j],ArrayObj[i]))
{
objectTemp=ArrayObj[i];
ArrayObj[i]=ArrayObj[j];
ArrayObj[j]=Temp;
}
}
}
}
}
}
相关文章
- 【说站】Python如何实现字符串排序
- 【C 语言】二级指针作为输入 ( 二维数组 | 抽象业务函数 | 二维数组打印函数 | 二维数组排序函数 )
- 数据结构与算法:排序
- oracle中对数字加汉字的排序以及REGEXP_SUBSTR介绍详解数据库
- Oracle数据库排序算法:从序号1开始(oracle排序序号)
- SQL Server 排序:如何升序排列(sqlserver按升序)
- MySQL 中如何进行中文排序(mysql对汉字排序)
- MySQL中使用rand方法随机排序数据(mysql中rand方法)
- Mysql中如何使用ASC排序(mysql 中asc排序)
- MySQL实现数据去重排序方法(mysql中取不重复)
- MySQL升序排列如何按顺序进行数据排序(mysql中升序排列)
- 在Oracle中用递归函数实现的有效拓扑排序(oracle中递归函数)
- 如何解决MySQL不稳定排序问题(mysql不稳定排序)
- Oracle数据库优化排序把时间变成分秒(oracle优化排序)
- Oracle中如何使用排序功能(oracle中怎么排序)
- javascript倒排序方法
- python实现归并排序算法
- table中点击表头实现排序的功能示例介绍