Hallo,
wie ermittelt man die vom Wert her zweithöchste Zahl eines Arrays?
Z.B. hier würde ich gerne die "5" ermitteln:
3, 56, 5, 0, 1
Gruß Chris
Hallo,
wie ermittelt man die vom Wert her zweithöchste Zahl eines Arrays?
Z.B. hier würde ich gerne die "5" ermitteln:
3, 56, 5, 0, 1
Gruß Chris
Der einfachste Ansatz wäre vermutlich zweimal durch das Array zu laufen. Beim ersten Durchlauf ermittelst du höchsten Wert und im zweiten dann den zweithöchsten. Musst im zweiten Durchlauf halt schauen, das der "max"-Wert größer als alle anderen und kleiner als der Wert aus dem ersten Durchlauf ist.
Hi,
Array sortieren (siehe Google), danach ist DeinArry[1] der zweithöchste wert
LG
Das ganze Array sortieren ist aber mehr Aufwand, als benötigt wird. Nimmt man z.B. bubble-sort als Algorithmus, reicht es schon zwei Durchläufe zu machen und nicht alle.
Gerade bei größeren Arrays spart das viel Zeit.
als ich würde weder 2 durchläufe dafür machen, noch sortieren. lege dir 2 variablen an.
durchsuche array {
wenn max gefunden
variable 2 = variable1
variable 1 = max
}
wenn das array durchsucht wurde, dann ist var1 dein max und var2 dein zweites max.
ich hoffe ich habe keinen denkfehler
wei schleifendurchläufe von selectionsort tun es auch, bubblesort ist immer ein schlechtes beispiel Vansens ansatz klingt brauchbar und läuft in O(N)
Was ist denn der zweithöchste Wert von { 1,3, 5, 5 } ? 3 oder 5 ?
Der Ansatz von Vansen ist so gut, dass er sogar beide Fälle abfängt, je nach dem wie
"wenn max gefunden" interpretiert wird.
Wieder einmal sehr kompetente Antworten hier.
Topp! Vielen Dank!
Gruß Chris