ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用c#进行快速排序

用c#进行快速排序

原创 Linux操作系统 作者:iDotNetSpace 时间:2009-02-12 16:41:47 0 删除 编辑
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]); 
   } 
   } 
   
  } 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-548875/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-01-04

  • 博文量
    2376
  • 访问量
    5322275