美文网首页
冒泡排序的拓展(利用泛型和Func委托实现通用排序)

冒泡排序的拓展(利用泛型和Func委托实现通用排序)

作者: 灰灰灰灰灰丶 | 来源:发表于2016-03-03 19:22 被阅读67次

工人类(例):

class Worker(
string Name{get;private set;}
int Money{get;private set;}

public Worker(string name,int money) //构造函数
{
this.Name=name;
this.Money=money;
}
public static bool Compare(Worker w1,Worker w2)
{
if(w1.Money>w2.Money)
{
return true;
}
return false;
}
//重写ToString()方法
publiic override string ToString()
{
return Name+" "+Money;
}
}

冒牌排序的拓展方法:

public static void Sort<T>(T[]Array,Func<T,T,bool>Compera) //写一个Sort的泛型方法,定义一个Array的泛型数组,用Func委托来传入要比较的内容
{
bool control=true; // 若control=true 则证明是有序排列,无需继续执行下面代码了
do
{
control=false;
for(int i=0;i<Array.Lenght;i++)
{
if(Compare(Array[i],Array[i+1]))
{
T temp = Array[i];
Array[i]=Array[i+1];
Array[i+1] = temp;
}
}
}While(contorl);
}

实例化:
Worker[] workers=new Worker[]{
new Worker ("张三",215),
new Worker ("李四",845),
new Worker ("王五",263),
new Worker ("赵六",231),
};
//调用Sort方法进行比较
Sort<Worker>(workers,Worker.Compare);//对象为Worker类型,workers为参数,Worker.Compare的返回值类型是bool
//遍历输出结果
foreach(Worker item in workers)
{
Console.WriteLine(item.ToString());
}
Console.Readkey();

相关文章

  • 冒泡排序的拓展(利用泛型和Func委托实现通用排序)

    工人类(例): class Worker(string Name{get;private set;}int Mon...

  • 举例说明C#中的委托如何使用

    委托回调静态方法和实例方法 泛型委托之Action泛型委托之Func Funcfunc = new Func(Pe...

  • 排序算法总结

    n^2的算法:冒泡排序,选择排序,插入排序n^1.3的算法:希尔排序nlogn的算法:归并排序、快速排序 泛型的使...

  • 看图说话排序算法之冒泡排序

    排序算法的种类非常多,这里总结冒泡排序和对冒泡排序的改进---快速排序的循环实现和递归实现。 一丶冒泡排序 假设待...

  • Go语言 泛型

    本篇文章转载自 在go中使用"泛型" 在进入泛型的话题之前, 首先实现对int 数组切片的冒泡排序: 如你所见, ...

  • 算法-冒泡排序

    算 法:冒泡排序算法时间复杂度: 冒泡排序算法概述 冒泡排序伪代码 冒泡排序实现 冒泡排序算法概述 冒泡排...

  • 排序优化

    如何实现一个通用的、高性能的排序函数? 如何选择合适的排序算法? 排序算法时间复杂度是稳定排序?是原地排序?冒泡排...

  • 七大排序算法之冒泡排序

    七大排序算法之冒泡排序 @(算法笔记)[排序算法, 冒泡排序, C++实现] 冒泡排序介绍 冒泡排序是七大排序算法...

  • 排序算法之交换排序

    利用交换数据元素的位置进行排序的方法称为交换排序。常见的交换排序方法有冒泡排序和快速排序。 1. 冒泡排序 1.1...

  • 排序相关 过滤

    1,冒泡排序 //按照从大到小的样式排序 class func getArrForMaxAndMin(change...

网友评论

      本文标题:冒泡排序的拓展(利用泛型和Func委托实现通用排序)

      本文链接:https://www.haomeiwen.com/subject/ytcokttx.html