C#演算法-------(四)快速排序 (轉)

worldblog發表於2007-12-11
C#演算法-------(四)快速排序 (轉)[@more@]

  前面我已經推出了三種排序的演算法,比較簡單。今天我又寫了排序的演算法。希望多多指教。具體的思想,我不做答了。前人的。

using System;

namespace QuickSorter
{
 public class QuickSorter
 {
 private void S(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] l++;
 while(list[r]>=pivot)
 r--;
 if(l Swap(ref list[l],ref list[r]);
 }while(l list[low]=list[r];
 list[r]=pivot;
 if(low+1 Sort(list,low,r-1);
 if(r+1 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]); 
 }
 }

}
已經編譯透過,執行環境:  xp  V 7.0

作者:to:solarsoft@163.com">顧劍輝


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991263/,如需轉載,請註明出處,否則將追究法律責任。

相關文章