基于C#的快速排序算法? int [] a=new int[9] {8,6,3,5,4,9,1,2,7}; System.Array.Sort(a);foreach (int i in a) Console.WriteLine(i); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 帮你改了一下:using System; namespace ConsoleApplication7 { public class Class1 { public int [] a=new int[9] {8,6,3,5,4,9,1,2,7}; public void quicksort(int h,int t) { if(h<t) { partion(h,t); } } //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) { if(i != j) { extr=a[i]; a[i]=a[j]; a[j]=extr; } i++; j--; } }while(i<=j); if(i<t) quicksort(i,t); if(j>h) quicksort(h,j); } 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(); } } } C#下的System.Array.Sort()就是快速排序啊。 using System; namespace ConsoleApplication7 { public class Class1 { public static void QuickSort (int[] intArray, int nLower, int nUpper) { if (nLower < nUpper) { int nSplit = Partition (intArray, nLower, nUpper); QuickSort (intArray, nLower, nSplit - 1); QuickSort (intArray, nSplit + 1, nUpper); } } static int Partition (int[] intArray, int nLower, int nUpper) { int nLeft = nLower + 1; int nPivot = intArray[nLower]; int nRight = nUpper; int nSwap; while (nLeft <= nRight) { while (nLeft <= nRight && intArray[nLeft] < nPivot) nLeft++; while (nLeft <= nRight && intArray[nRight] >=nPivot ) nRight--; if (nLeft < nRight) { nSwap = intArray[nLeft]; intArray[nLeft] = intArray[nRight]; intArray[nRight] = nSwap; nLeft++; nRight--; } } // Move pivot element nSwap = intArray[nLower]; intArray[nLower] = intArray[nRight]; intArray[nRight] = nSwap; return nRight; } } public class MainClass { static void Main(string[] args) { int[] a= new int[9] {8,6,3,5,4,9,1,2,7}; Class1.QuickSort(a,0,a.Length-1); foreach (int i in a) Console.WriteLine(i); Console.ReadLine(); } } } 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联。 dataGridView与下一窗体之间的参数传递问题 QQ登陆界面如何搞? 关于numericUpDown和comboBox初值问题,跪求~~~ 请问各位大哥,下面是什么编码,怎么转换成汉字,是不是加密了??? 急求一个正则表达式! 设计一个控件,如何在用户使用该控件编程时,单击时出现一个对话框? 关于ADO的问题,救命啊! 入门者关于调用Kernel32.dll的编写 关于C#中窗体的调用! 500分小问题求教! 本人一直以为.net只提供面向web应用的跨平台能力,而对于..................
namespace ConsoleApplication7
{
public class Class1
{
public int [] a=new int[9] {8,6,3,5,4,9,1,2,7};
public void quicksort(int h,int t)
{
if(h<t)
{
partion(h,t);
}
}
//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)
{
if(i != j)
{
extr=a[i];
a[i]=a[j];
a[j]=extr;
}
i++;
j--;
}
}while(i<=j); if(i<t)
quicksort(i,t);
if(j>h)
quicksort(h,j);
} 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();
}
}
}
namespace ConsoleApplication7
{
public class Class1
{
public static void QuickSort (int[] intArray, int nLower, int nUpper)
{
if (nLower < nUpper)
{
int nSplit = Partition (intArray, nLower, nUpper);
QuickSort (intArray, nLower, nSplit - 1);
QuickSort (intArray, nSplit + 1, nUpper);
}
} static int Partition (int[] intArray, int nLower, int nUpper)
{
int nLeft = nLower + 1;
int nPivot = intArray[nLower];
int nRight = nUpper; int nSwap;
while (nLeft <= nRight)
{ while (nLeft <= nRight && intArray[nLeft] < nPivot)
nLeft++; while (nLeft <= nRight && intArray[nRight] >=nPivot )
nRight--;
if (nLeft < nRight)
{
nSwap = intArray[nLeft];
intArray[nLeft] = intArray[nRight];
intArray[nRight] = nSwap;
nLeft++;
nRight--;
}
} // Move pivot element
nSwap = intArray[nLower];
intArray[nLower] = intArray[nRight];
intArray[nRight] = nSwap;
return nRight;
}
} public class MainClass
{
static void Main(string[] args)
{
int[] a= new int[9] {8,6,3,5,4,9,1,2,7}; Class1.QuickSort(a,0,a.Length-1); foreach (int i in a)
Console.WriteLine(i); Console.ReadLine();
}
}
}