Hallo liebe Community,
ich versuche mich verzweifelt an einer Implementierung des Bucketsort Algorithmus. Aus einer Textdatei heraus bekomme ich Adressdaten, die wie folgt aufgebaut sind (zeilenweise):
int straßennummer|int hausnummer|String Absender | String Empfänger
Diese Informationen habe ich nun aus der Textdatei in ein Array gepackt. Sozudagen ArrayBriefe[], in dem die Infos zu jeder Adresse stehen. Bei meiner Bucketsort implementierung sortiert er aber nur die Straßennummern. Und ich zermalme mir das Hirn wie ich das noch hinbekomme, das er zuerst nach Straßenummer, und danach nach Hausnummer sortiert.Ebenfalls habe ich zu den Straßennummern und Hausnummern die maxValues.
Hier mein Bucketsort Code:
Hoffe ihr habt Ideen wie ich die Implementierung richtig hinbekomme. Ich weiß auch das ich wahrscheinlich sort rekursiv nochmal aufrufen müsste, nur weiß ich nicht wie:bahnhof:
ich versuche mich verzweifelt an einer Implementierung des Bucketsort Algorithmus. Aus einer Textdatei heraus bekomme ich Adressdaten, die wie folgt aufgebaut sind (zeilenweise):
int straßennummer|int hausnummer|String Absender | String Empfänger
Diese Informationen habe ich nun aus der Textdatei in ein Array gepackt. Sozudagen ArrayBriefe[], in dem die Infos zu jeder Adresse stehen. Bei meiner Bucketsort implementierung sortiert er aber nur die Straßennummern. Und ich zermalme mir das Hirn wie ich das noch hinbekomme, das er zuerst nach Straßenummer, und danach nach Hausnummer sortiert.Ebenfalls habe ich zu den Straßennummern und Hausnummern die maxValues.
Hier mein Bucketsort Code:
Java:
public static void sort(Brief[] briefe, int maxVal){
int [] bucket=new int[maxVal+1];
for (int i=0; i<bucket.length; i++){
bucket[i]=0;
}
for (int i=0; i<briefe.length; i++){
bucket[briefe[i].Straßenname]++;
}
int outPos=0;
for (int i=0; i<bucket.length; i++){
for (int j=0; j<bucket[i]; j++){
briefe[outPos++].Straßenname = i;
}
}
}
Hoffe ihr habt Ideen wie ich die Implementierung richtig hinbekomme. Ich weiß auch das ich wahrscheinlich sort rekursiv nochmal aufrufen müsste, nur weiß ich nicht wie:bahnhof: