您的位置:首页 > 编程语言 > C#

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

2007-08-30 17:17 309 查看
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]);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: