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

    技术2022-05-11  143

          前面我已经推出了三种排序的算法,比较简单。今天我又写了快速排序的算法。希望多多指教。具体的思想,我不做答了。前人的经验。

    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

    作者:顾剑辉


    最新回复(0)