Heapsort Code Verständnisprobleme

HansSchmitz91

Grünschnabel
Hallo ich war auf der Suche einer HeapSort Implementation und habe eine gefunden. Ich verstehe den ganzen Code bis auf einen kleinen Teil der da wäre:
Java:
if (r <= heapGroesse) 
            {
                sohn = liste[l] < liste[r] ? // Diese Zeile verstehe ich nicht
                l:                                      // Diese auch
                r;                                     // Diese auch
                if (liste[sohn] < liste[dieserKnoten])
                {   
                    tausche(liste, dieserKnoten, sohn);
                    macheHeapFuerKnoten(liste, sohn, heapGroesse);
                }
            }

Wäre echt toll wenn mir jemand diesen Teil erklären könnte. Danke im voraus :)
 
Zuletzt bearbeitet:

Cromon

Erfahrenes Mitglied
Das ist eine etwas ungewöhnliche Notation der Kurzform des ifs.
Java:
a ? b : c;
// ist wie:
if(a) {
   b;
} else {
   c;
}

In dem konkreten Fall:
Java:
if(liste[l] < liste[r]) {
   sohn = l;
} else {
   sohn = r;
}

Siehe: ?:

Grüsse
Cromon
 

Neue Beiträge