手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#使用委托实现的快速排序算法实例
C#使用委托实现的快速排序算法实例
摘要:本文实例讲述了C#使用委托实现的快速排序算法。分享给大家供大家参考。具体如下:classQuickSort{privatedelegatei...

本文实例讲述了C#使用委托实现的快速排序算法。分享给大家供大家参考。具体如下:

class QuickSort { private delegate int CmpOp(object Left, object Right); private void swap(object[] Array, int Left, int Right, CmpOp Cmp) { object tempObj = Array[Left]; Array[Left] = Array[Right]; Array[Right] = tempObj; } private int CmpInt(object Left, object Right) { if ((int) Left < (int) Right) return -1; else return -2; } public QuickSort(object[] Array) { CmpOp Cmp = new CmpOp(CmpInt); Sort(Array, 0, Array.Length-1, Cmp); } private void Sort(object[] Array, int Left, int Right, CmpOp Cmp) { int LHold = Left; int RHold = Right; Random ObjRan = new Random(); int Pivot = ObjRan.Next(Left,Right); swap(Array, Pivot, Left, Cmp); Pivot = Left; Left++; while (Right >= Left) { if (Cmp(Array[Left], Array[Pivot])!= -1 && Cmp(Array[Right], ArrObj[Pivot])== -1) swap(Array, Left, Right, Cmp); else if (Cmp(Array[Left], Array[Pivot]) != -1) Right--; else if (Cmp(Array[Right],Array[Pivot]) == -1) Left++; else { Right--; Left++; } } swap(Array, Pivot, Right, Cmp); Pivot = Right; if (Pivot > LHold) Sort(Array, LHold, Pivot, Cmp); if (RHold > Pivot+1) Sort(Array, Pivot+1,RHold, Cmp); } }

希望本文所述对大家的C#程序设计有所帮助。

【C#使用委托实现的快速排序算法实例】相关文章:

c# 冒泡排序算法(Bubble Sort) 附实例代码

C#拼接SQL语句 用ROW_NUMBER实现的高效分页排序

c# 应用事务的简单实例

C#计算两个文件的相对目录算法的实例代码

C#用Lambda和委托实现模板方法

C# 排序算法之堆排序

c#实现sunday算法实例

C# 委托(delegate) 的小例子

winform使用委托和事件来完成两个窗体之间通信的实例

C#中无边框窗体移动的简单实例

精品推荐
分类导航