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

C#算法-------(四)快速排序 (转)[@more@]

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

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] 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]); 
 }
 }

}
已经编译通过,运行环境:windows  xp  VC#.NET 7.0

作者:Mailto:solarsoft@163.com" rel="nofollow">顾剑辉


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

转载于:http://blog.itpub.net/10752043/viewspace-991263/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值