C#算法(四)快速排序

C#算法(四)快速排序


作者: solarsoft  &;nbsp来自:网络


               
 
        前面我已经推出了三种排序的算法,比较简单。今天我又写了快速排序的算法。希望多多指教。具体的思想,我不做答了。前人的经验。
 
  using System;
 
  namespace QuickSorter
  {
  public class QuickSorter
  {
    private void Swap(ref int l,ref int r)
    {
    int s;
    s=l;
    l=r;
    r=s;
    }
    public void Sort(int [] list,int low,int high)
    {
    int pivot;
    int l,r;
    int mid;
    if(high<=low)
      return;
    else if(high==low 1)
    {
      if(list[low]>list[high])
      Swap(ref list[low],ref list[high]);
      return;
    }
    mid=(low high)>>1;
    pivot=list[mid];
    Swap(ref list[low],ref list[mid]);
    l=low 1;
    r=high;
    do
    {
    while(l<=r&;&;list[l]<pivot)
      l  ;
    while(list[r]>=pivot)
      r--;
      if(l<r)
      Swap(ref list[l],ref list[r]);
    }while(l<r);
    list[low]=list[r];
    list[r]=pivot;
    if(low 1<r)
      Sort(list,low,r-1);
    if(r 1<high)
      Sort(list,r 1,high);
    }
  }
  public class MainClass
  {
    public static void Main()
    {
    int[] iArrary=new int[]{1,5,3,6,10,55,9,2,87,12,34,75,33,47};
    QuickSorter q=new QuickSorter();
    q.Sort(iArrary,0,13);
    for(int m=0;m<=13;m  )
      Console.WriteLine("{0}",iArrary[m]); 
    }
  }
 
  }
  已经编译通过,运行环境:windows  xp  VC#.net 7.0
 
    (2005-11-05:12:25)

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [C#] 的这些文章也感兴趣:

利用C#的FileStream分段复制大文件
C#中的Nullable类型(翻译)
C#农历
.NET并不一定全是新东西
在.NET(正式版)环境下读写系统日志
C#特性(Attribute)入门(一)
C# 实现屏幕键盘 (ScreenKeyboard)
C#基础学习——异步编程篇
VisualC#.Net网络程序开发-Socket篇
C#3.0 为我们带来什么(1) —— LINQ之Lambda