hi!
ich hab probiert counting sort zu programieren:
jedoch hab ich folgendes Problem:
Mein Programm hört immer an der Stelle auf an dem es das Maximum des 1. Arrys ausrechnet. das ist ca. zeile 60.
ich weis nicht wieso...
hier mal der code:
könnt ihr mir helfen?
mfg, XuS
ich hab probiert counting sort zu programieren:
jedoch hab ich folgendes Problem:
Mein Programm hört immer an der Stelle auf an dem es das Maximum des 1. Arrys ausrechnet. das ist ca. zeile 60.
ich weis nicht wieso...
hier mal der code:
Java:
import java.util.*;
public class counting {
public static void main(String[] args) {
//Array Eingabe der Länge 10 erzeugen
int eingabe[] = new int[11];
//Arry mit Werten Füllen
System.out.println("Bitte 10 Werte eingeben");
Scanner sc = new Scanner(System.in);
String eingabe1 = sc.nextLine();
String eingabe2 = sc.nextLine();
String eingabe3 = sc.nextLine();
String eingabe4 = sc.nextLine();
String eingabe5 = sc.nextLine();
String eingabe6 = sc.nextLine();
String eingabe7 = sc.nextLine();
String eingabe8 = sc.nextLine();
String eingabe9 = sc.nextLine();
String eingabe10 = sc.nextLine();
eingabe[0]=Integer.parseInt(eingabe1);
eingabe[1]=Integer.parseInt(eingabe2);
eingabe[2]=Integer.parseInt(eingabe3);
eingabe[3]=Integer.parseInt(eingabe4);
eingabe[4]=Integer.parseInt(eingabe5);
eingabe[5]=Integer.parseInt(eingabe6);
eingabe[6]=Integer.parseInt(eingabe7);
eingabe[7]=Integer.parseInt(eingabe8);
eingabe[8]=Integer.parseInt(eingabe9);
eingabe[9]=Integer.parseInt(eingabe10);
//List Eingabe Ausgeben
int i=0;
while (i < 10){
System.out.print(eingabe[i] + " ");
i++;
}
//Maximum finden
int j=1;
int max= eingabe[0];
while (j < 10){
if (max<eingabe[j+1]){
max=eingabe[j+1];
} //End if
j++;
}//End for
System.out.print("Maximum ist " + max);
//Hilfs array erzeugen
int hilfe[] = new int[max+1];
i=0;
int k=0;
while (k < max +1){
while (i < 10){
if ( k == eingabe[i] ){
hilfe[k]=hilfe[k]+1;
i++;
}
}
k++;
}
// Ende des Hilfsarry
//Ergebnis Array erzeugen
int ergebnis[] = new int[11];
int platzverteiler=0;
k=0;
while (k < max +1){
while (hilfe[k] != 0 ){
ergebnis[platzverteiler]=k;
platzverteiler=platzverteiler+1;
hilfe[k]=hilfe[k]-1;
}
k++;
}//Ender vom Ergenis Array
//Ausgabe
i=0;
while (i < 10){
System.out.print(ergebnis[i] + " ");
i++;
}
}
}
könnt ihr mir helfen?
mfg, XuS
Zuletzt bearbeitet: