45fan.com - 路饭网

搜索: 您的位置主页 > 电脑频道 > 电脑教程 > 阅读资讯:C#算法之快速排序的方法

C#算法之快速排序的方法

2016-09-04 08:14:26 来源:www.45fan.com 【

C#算法之快速排序的方法

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

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

作者:顾剑辉

 

本文地址:http://www.45fan.com/dnjc/72029.html
Tags: 快速 算法 -------
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部