基于C#的快速排序算法?
如下
using System;
namespace ConsoleApplication7
{
public class Class1
{
public int [] a=new int[9] {8,6,3,5,4,9,1,2,7};
public int lefth,leftt,righth,rightt;
public void quicksort(int h,int t)
{
if(h<t)
{
partion(h,t);
quicksort(lefth,leftt);
quicksort(righth,rightt);
}
}
//quicksort end
public void partion(int h,int t)
{
int pivot;
int i,j;
int extr;
i=h;
j=t;
pivot=a[(i+j)/2];
do
{
while(a[i]<pivot)
i++;
while(a[j]>pivot)
j--;
if(i<=j)
{
extr=a[i];
a[i]=a[j];
a[j]=extr;
i++;
j--;
}
}while(i<=j);
lefth=h;
leftt=j;
righth=i;
rightt=t;
}
public void writea()
{
int a1;
for(a1=0;a1<=8;a1++)
Console.WriteLine("the array is {0}",a[a1]);
}
}
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class MainClass
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
//partion end
static void Main(string[] args)
{
Class1 doit=new Class1();
doit.quicksort(0,8);
doit.writea();
Console.Read();
}
}
}
结果为何不正确亚?