C#使用委托实现的快速排序算法实例

所属分类: 软件编程 / C#教程 阅读数: 68
收藏 0 赞 0 分享

本文实例讲述了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#抽象类与抽象方法的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
收藏 0 赞 0 分享

C#代码实现扑克牌排序的几种方式

今天小编就为大家分享一篇关于C#代码实现扑克牌排序,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#泛型概念的简介与泛型的使用

今天小编就为大家分享一篇关于C#泛型概念的简介与泛型的使用,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C# 7.0 使用下划线忽略使用的变量的原因分析

这篇文章主要介绍了C# 7.0 使用下划线忽略使用的变量的原因浅析,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

C# 中使用正则表达式匹配字符的含义

正则表达式的作用用来描述字符串的特征。本文重点给大家介绍C# 中使用正则表达式匹配字符的含义,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧
收藏 0 赞 0 分享

C# Dictionary和SortedDictionary的简介

今天小编就为大家分享一篇关于C# Dictionary和SortedDictionary的简介,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#中SQL Command的基本用法

今天小编就为大家分享一篇关于C#中SQL Command的基本用法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#使用SQL DataReader访问数据的优点和实例

今天小编就为大家分享一篇关于C#使用SQL DataReader访问数据的优点和实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#使用SQL Dataset数据集代码实例

今天小编就为大家分享一篇关于的文章,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享

C#使用SQL DataAdapter数据适配代码实例

今天小编就为大家分享一篇关于C#使用SQL DataAdapter数据适配代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
收藏 0 赞 0 分享
查看更多