最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#使用委托實(shí)現(xiàn)的快速排序算法實(shí)例

 更新時(shí)間:2015年07月03日 11:07:51   作者:不是JS  
這篇文章主要介紹了C#使用委托實(shí)現(xiàn)的快速排序算法,實(shí)例分析了C#委托機(jī)制與快速排序算法的實(shí)現(xiàn)技巧,需要的朋友可以參考下

本文實(shí)例講述了C#使用委托實(shí)現(xiàn)的快速排序算法。分享給大家供大家參考。具體如下:

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); 
 }
} 

希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論

静宁县| 岳普湖县| 横山县| 玛多县| 东宁县| 酒泉市| 宜都市| 贞丰县| 时尚| 乐都县| 奇台县| 贡嘎县| 于田县| 天津市| 郑州市| 本溪| 阳信县| 大厂| 通化市| 大新县| 海门市| 英吉沙县| 昭觉县| 霍林郭勒市| 麻阳| 镇坪县| 桐梓县| 洛隆县| 大理市| 紫阳县| 连州市| 平邑县| 正蓝旗| 萝北县| 徐水县| 屯昌县| 郁南县| 锡林浩特市| 嘉祥县| 饶河县| 马鞍山市|