C#算法-------(四)快速排序 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- C#算法-------(四)快速排序 (http://www.webasp.net/article/5/4197.htm) |
| -- 作者:未知 -- 发布日期: 2003-07-12 |
| 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]); } } } |
| webasp.net |