
charly
By: a guest on Jun 6th, 2008 | syntax:
Java | size: 1.34 KB | hits: 91 | expires: Never
import java.util.Random;
import java.lang.Math;
import java.util.Arrays;
public class Test {
static void sort(int a[]) {
quicksort(a,0,a.length-1);
}
static void quicksort(int a[], int min, int max) {
int minT=min, maxT=max;
if (minT>=maxT) return;
int mid=a[(minT+maxT)/2];
while (minT<maxT) {
while (minT<maxT && a[minT]<mid)
minT++;
while (minT<maxT && a[maxT]>mid)
maxT--;
if (minT<maxT) {
int T=a[minT];
a[minT]=a[maxT];
a[maxT]=T;
}
}
if (maxT<minT) {
int T=maxT;
maxT=minT;
minT=T;
}
quicksort(a,min,minT);
quicksort(a,minT==min?minT+1:minT,max);
}
static String toString
(int[] t
) {
StringBuilder sb=new StringBuilder("["+t[0]);
for(int i=1;i<t.length;i++)
sb.append(", "+t[i]);
sb.append("]");
return sb.toString();
}
public static void main
(String...
args) {
int[] tab=new int[5000];
for(int i=0;i<5000;i++)
tab[i]=rand.nextInt();
int[] tab2=tab.clone();
long t0
=System.
currentTimeMillis();
sort(tab);
long t1
=System.
currentTimeMillis();
long t2
=System.
currentTimeMillis();
System.
out.
println(toString
(tab
).
equals(toString
(tab2
)));
}
}