Helfen Sie mir diesen Algorithmus zu simulieren: einen Algorithmus mit Wiederholung Implementierung/bis Java mit
das Array gegeben [5 3 1 9 8 2 4 7], dass ich davon ausgehen, = 0.
I umgewandelt es zu kodieren:
public class Test {
public static void main(String[] args) {
int[] a = {5,3,1,9,8,2,4,7};
int l = 0;
int p = a[l];
int i=l;
int j = 8;
do{
do{
i++;
System.out.println("Value of i " + i);
}while(a[i]>=p);
do{
j--;
System.out.println("\nValue of j " + j);
}while(a[j]<p);
swap(a,i,j);
System.out.println("\nSwapped! a[i] = " + a[i] + " a[j] = " + a[j]);
System.out.println("Swap 1");
for(int k : a){
System.out.print(k + " ");
}
}while(i>=j);
if(i>=j){
swap(a,i,j);
System.out.println("\nSwapped! a[i] = " + a[i] + " a[j] = " + a[j]);
System.out.println("Swap 2");
for(int k : a){
System.out.print(k + " ");
}
}
else{
swap(a,i,j);
System.out.println("\nSwapped! a[i] = " + a[i] + " a[j] = " + a[j]);
System.out.println("Swap 3");
for(int k : a){
System.out.print(k + " ");
}
swap(a,l,j);
System.out.println("\nSwapped! a[l] = " + a[l] + " a[j] = " + a[j]);
System.out.println("Swap 4");
for(int k : a){
System.out.print(k + " ");
}
}
System.out.println("\nreturn value is: " + j);
System.out.println("Final array: ");
for(int k : a){
System.out.print(k + " ");
}
}
public static void swap(int a[], int a1, int a2){
int temp = a[a1];
a[a1] = a[a2];
a[a2] = temp;
}
}
Das Ergebnis ist:
Aber wenn ich es in Papier simuliere, sind meine Ergebnisse unterschiedlich. Entweder habe ich "Wiederholen bis" mit "Do While" oder falsch im Papier analysiert.
Teilen Sie mir Ihre Simulationen Kumpels :) Danke!
Thanks man! Jetzt habe ich dieselben Ergebnisse wie bei meiner Simulation auf Papier. Vielen Dank für Ihre Klarstellung! :) – Andre