werte im array sortieren

Von: , Frage gestellt am Fr, 3. Feb 2006

hallo,
ich habe die vorgabe, dass ein zufälliges array generiert wird und ich soll es jetzt sortieren. dabei soll das programm von letzen index an das maximum suchen und es ans ende des arrays setzen, dann begnnt die prozedur von vorne, max suchen und es vor die letzte max zahl setzen usw. mein code funzt irgendwie nicht so wie ich es will. vielleicht könnt hr mir sagen was dran falsch ist. hier der ausschnitt zum sortieren:

int tausch = 0; //variable zum tauschen
int max = 0; //maximalwert

for (int i = a.length; i > 1; i--) { //das array von hinten durchgehen

for (int j = 0; j < a.length; j++) { //nach max suchen

if (a[max] < a[j]) { //max = j; //vergleich obs ne größere zahl gibt

tausch = a[max]; //hier werden
a[max] = a[j]; //die werte des
a[j] = tausch; //arrays getauscht
}
}
}

danke für eure hilfe, vader

4 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Werte im Array sortieren

    Auch hallo. ich habe die vorgabe, dass ein zufälliges array generiert wird
    und ich soll es jetzt sortieren. dabei soll das programm von
    letzen index an das maximum suchen und es ans ende des arrays
    setzen, dann begnnt die prozedur von vorne, max suchen und es
    vor die letzte max zahl setzen usw. mein code funzt irgendwie
    nicht so wie ich es will. vielleicht könnt hr mir sagen was
    dran falsch ist. hier der ausschnitt zum sortieren:
    Der Algorithmus nennt sich "Bubble Sort". Mithilfe der bösen Suchmaschine @ "Bubble sort" +java lässt sich schon einiges dazu entdecken. U.a. der Sortieralgorithmus ;-)

    HTH
    mfg M.L.

  2. Antwort von nach einer Stunde 0 hilfreich
    Re: werte im array sortieren

    hallo,
    Hi, ich habe die vorgabe, dass ein zufälliges array generiert wird
    und ich soll es jetzt sortieren. dabei soll das programm von
    letzen index an das maximum suchen und es ans ende des arrays
    setzen, dann begnnt die prozedur von vorne, max suchen und es
    vor die letzte max zahl setzen usw. mein code funzt irgendwie
    nicht so wie ich es will. vielleicht könnt hr mir sagen was
    dran falsch ist. hier der ausschnitt zum sortieren:

    int tausch = 0; //variable zum
    tauschen
    int max = 0; //maximalwert

    for (int i = a.length; i > 1; i--) { //das array von
    hinten durchgehen

    for (int j = 0; j < a.length; j++) { //nach max
    suchen

    if (a[max] < a[j]) { //max = j; //vergleich obs
    ne größere zahl gibt

    tausch = a[max]; //hier werden
    a[max] = a[j]; //die werte des
    a[j] = tausch; //arrays getauscht
    }
    }
    }

    wofür die max-Variable?

    int tausch;
    for (int i = a.length; i >= 0; i--) {
    for (int j = 0; j < i; j++) {
    if (a[j] > a[i]) { 
    tausch = a[i];
    a[i] = a[j];
    a[j] = tausch;
    }
    }
    }
    

    Hier wird ordentlich getauscht.
    Folgendes Beispiel tauscht maximal [Größe des Arrays - 1]-mal.
    int tausch;
    int max;
    for (int i = a.length; i >= 0; i--) {
    max=i;
    for (int j = 0; j < i; j++) {
    if (a[j] > a[max]) { 
    max=j; 
    } 
    }
    tausch = a(max);
    a(max) = a(i);
    a(i) = tausch;
    }
    


    Gruß.Timo danke für eure hilfe, vader

  3. Antwort von nach einem Tag 0 hilfreich
    Re: werte im array sortieren

    Hallo, int tausch = 0; //variable zum
    tauschen
    int max = 0; //maximalwert

    for (int i = a.length; i > 1; i--) { //das array von
    hinten durchgehen

    for (int j = 0; j < a.length; j++) {
    ersetze diese Zeile doch mal durch

    for (int j=0; j<i; j++) {

    ansonsten tauscht Du nämlich nur einmal, und hast dann das Maximum hinten.

    Gruß,

    H.

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!