17. januar 2005 - 09:58
Der er
6 kommentarer
Hvad gør dette?
Hvad gør denne? Og hvad burde man eventuelt kalde den?
public static int doStuff(int[] num, int p, int r)
{
int i, j, pi, tmp;
Pi = num[p];
i = p-1;
j = r+1;
while(true);
{
j=j-1;
while( num[j] > pi)
j= j-1;
i=i+1;
while(num[i] <pi)
i = i+4;
if( i<j)
{
tmp = num[i];
num[i]=num[j];
num[j]=tmp;
}
else
break;
}
return j;
}
public static int[] mystery2(int[] ar, int a, intb)
{
int J;
if(a<b)
{
j = doStuff(ar,a,b);
mystery2(ar,a,j);
mystery2(ar,j+1,b);
}
return ar;
}
19. januar 2005 - 21:59
#4
Når man retter den til +1 og lidt andre compile fejl (indtastnings fejl ?), så
sorterer den perfekt:
public class Mystery {
public static int doStuff(int[] num, int p, int r) {
int i, j, pi, tmp;
pi = num[p];
i = p - 1;
j = r + 1;
while (true) {
j = j - 1;
while (num[j] > pi)
j = j - 1;
i = i + 1;
while (num[i] < pi)
i = i + 1;
if (i < j) {
tmp = num[i];
num[i] = num[j];
num[j] = tmp;
} else
break;
}
return j;
}
public static int[] mystery2(int[] ar, int a, int b) {
int j;
if (a < b) {
j = doStuff(ar, a, b);
mystery2(ar, a, j);
mystery2(ar, j + 1, b);
}
return ar;
}
public static void main(String[] args) {
int[] a = { 3, 6, 9, 2, 4, 8, 1, 5, 7, 0 };
int[] a2 = mystery2(a, 0, a.length - 1);
for (int i = 0; i < a2.length; i++) {
System.out.println(a2[i]);
}
}
}