Wenn ich jetzt gemein wäre würde ich ja sagen du hättest im Unterricht nicht so viel schlafen sollen (oder hast du mich als Vorbild genommen? ;-) )
Auch wenn Java schon etwas her ist, die Grundlagen sitzen zum Glück noch bei mir.
zu 1:
Wie es funktioniert steht hier:
de.wikipedia.org/wiki/Selectionsort
Dein Code hat auch einige Fehler! Mal ist z nur ein einzelner int-Wert, mal ein Array!! Das funktioniert so nicht!!
Am Besten nochmal überarbeiten und testen, das übt!
Was die einzelnen Befehle machen werde ich hier jetzt nicht erklären, das ist zu viel. ABer was die Abschnitte machen sollen (! auch wenn sie es in der Form wohl nicht machen) das sei mal kurz dargestellt
1.
public class Selectionsort{
static int[] z;
public static void main ( String [] args ){
z= new int [6];
double d;
int i, v;
// Belegung der Feldelemente mit Zufallszahlen
for (i = 0; i<6 ;i++){
d = Math.random() * 49 +1 ;
z = (int) d;
System.out.print(z + ", ");
}
int j;
v= z [0];
// Geht die Liste von Oben nach unten durch (index 0 bis 5)
for (j= 0;j<6;j++){
v= z [j];
System.out.println("\n");
// Nimmt sich das jeweils nächste Element, vergleich und vertauscht die Positionen falls nötig (Achtung, geschachtelte Schleifen) //
for (i = j+1;i<6;i++){
if (v>z){
z[j]= z;
z= v;
v = z[j];
}
}
druckeArray();
}
}
// dürfte eigentlich logisch sein...
public static void druckeArray(){
for (int i=0;i<6; i++){
System.out.print(z + ", ");
}
}
}
zu 2:
de.wikipedia.org/wiki/Bubblesort
2.
public class Bubble {
public static void main (String Args [] ) {
int [] Zahlen = new int [6];
int N=5;
int i;
int Zahl;
for (i=0;i<=5;i++){
Zahlen = 0;
}
int j;
// Belegt die Feldelemente mit Zufallszahlen unter Verhinderung von doppelten Elementen
for (j=0;j<=5;j++){
Zahl = (int)((Math.random()*49)+1);
while ( Zahl == Zahlen [1] || Zahl == Zahlen [2] || Zahl == Zahlen [3] || Zahl == Zahlen [4] || Zahl == Zahlen [5] || Zahl == Zahlen [0]){
Zahl = (int)(Math.random()*6+1);
}
Zahlen [j] = Zahl;
System.out.print(Zahlen [j]+ ", ");
}
// Variable getauscht is eine "Beschleunigung
boolean getauscht = true;
int k;
int v;
int m = 0;
// Solange getauscht wurde mache...
while (getauscht == true){
getauscht = false;
// Durchlaufe die Liste, vergleiche und tausche ggf.
for (k=0;k<N;k++){
v = Zahlen [k];
if (Zahlen [k] > Zahlen [k+1]){
Zahlen [k] = Zahlen [k+1];
Zahlen [k+1] = v;
getauscht = true;
}
}
m += 1;
}
System.out.println("\n");
int l;
for (l=0;l<=N;l++){
System.out.print(Zahlen [l]+", ");
}
System.out.println("\n\n" + m + " Durchga(e)ng(e)");
}
}
Ich hoffe ich konnte ein klein wenig helfen.
Der Doc