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

王朝c#·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

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

作者:顾剑辉

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航