Elegante Möglichkeit die kleinste Zahl zu ermitteln.

Status
Nicht offen für weitere Antworten.

FoolMoon

Mitglied
Moin Moin

Ich suche nach einer eleganteren (eventuell auch rechnerischen) Lösung/Möglichkeit aus drei Zahlen die kleinste er erfahren. Momentan hab ich es mit drei verschachtelten if-Abfragen realisiert. Hat ihr eventuell einen Impuls für mich, wie man es besser umsetzten kann?

Aktueller Code:
Java:
public class Temp{

  public static void main(String[] args) {
    int a = 3;
    int b = 4;
    int c = 2;

    if (a < b) { 
      if (a < c) { System.out.println("a");}
      else { System.out.println("c");}
    }    
    else {                            
      if(b < c) { System.out.println("b");}      
      else { System.out.println("c");}     
    }

  }

}
 

diggaa1984

Top Contributor
Java:
System.out.println(Math.min(Math.min(a,b),c));

geht dir nur der String a b c flöten :D .. aber dafür gibt er die kleinste zahl aus
 

FoolMoon

Mitglied
Danke, allerdings hab ich nach einer eigenen Lösung gesucht, aber ich denke das dies nicht möglich ist.
 

vinculum

Mitglied
Also, auch wenn es etwas behämmert aussieht, es gibt da ein formalisiertes Pattern, das sogenannte Djikstra-If.

Java:
if(a <=b && b<=c)System.out.println("a");
if(b<=c && c <=a)System.out.println("b");
if(c<=a && a<=b)System.out.println("c");
if(a<=c && c<=b)System.out.println("a");
if(b<=a && a <=c)System.out.println("b");
if(c<=b && b<=a)System.out.println("c");

Die Idee ist, das jede der erlaubten Ergebnismengen welche durch die einzelnen IF-Blöcke erlaubt wird disjunkt also ohne gemeinsame Elemente ist. Das Konstrukt stammt aus der funktionalen Programmierung und geht auf Edsger Wybe Dijkstra ? Wikipedia zurück.
 

Michael...

Top Contributor
Wenn's nicht um die Ausgabe der Variablenbezeichner geht:
Java:
int[] z = { 3, 4, 2 };
int min = Integer.MAX_VALUE;
for (int i = 0; i < z.length; i++)
	if (z[i] < min)
		min = z[i];
System.out.println("Die kleinste Zahl aus der Menge "
	+ java.util.Arrays.toString(z) + " lautet: " + min);
 
S

SlaterB

Gast
Also, auch wenn es etwas behämmert aussieht, es gibt da ein formalisiertes Pattern, das sogenannte Djikstra-If.

Java:
if(a <=b && b<=c)System.out.println("a");
if(b<=c && c <=a)System.out.println("b");
if(c<=a && a<=b)System.out.println("c");
if(a<=c && c<=b)System.out.println("a");
if(b<=a && a <=c)System.out.println("b");
if(c<=b && b<=a)System.out.println("c");
ist darin wirklich eine derartige Wiederholung vorgesehen?

Java:
if(a<=b && a<=c)System.out.println("a");
if(b<=c && b<=a)System.out.println("b");
if(c<=a && c<=b)System.out.println("c");
tut es doch auch wenn nur das erste Element interessiert

edit: oh, das ist ja im ersten Posting schon weitgehend vorhanden,
von Fragen wie < statt <= abgesehen
 

Painii

Bekanntes Mitglied
So wie du es hast gehts nicht wirklich besser...

Was du machen könntest:
Die key-value-paare (a->int, b->int, c->int) zusammenfassen, sortieren, und einen Baum draus bauen.
Da kannst du dann mit Binärsuche drübergehen und das kleinste Element suchen.

Lohnt sich nicht für 3 Werte, aber später vielleicht...


Das zusammenfassen der Paare damit du dann später auch wieder a, b oder c ausgeben kannst wenn du das Minimum gefunden hast.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
J [SWING]Elegante Java Formular Lösung? XML? Allgemeine Java-Themen 4
K Elegante Lösung zum Manipulieren von Collections gesucht Allgemeine Java-Themen 16
D Elegante Programmierung. Allgemeine Java-Themen 7
H Apache fop -- welche Möglichkeit gibt es um den Fortschritt anzuzeigen (Progressbar) Allgemeine Java-Themen 5
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
Zrebna Möglichkeit regelmäßige indentation mittels/innerhalb Stringbuilder Allgemeine Java-Themen 14
Q Möglichkeit Online-Programmieren üben. Allgemeine Java-Themen 9
M Praktische Möglichkeit um Studierenden Java zu erklären Allgemeine Java-Themen 33
S Input/Output Beste Möglichkeit einen String in einen Datei zu Schreiben Allgemeine Java-Themen 2
W Möglichkeit von java Allgemeine Java-Themen 16
D Möglichkeit mit GAE eine Table auszulesen und eine csv zu schreiben Allgemeine Java-Themen 22
V Gibt es eine Möglichkeit die Internet auslastung mit Java auszulesen Allgemeine Java-Themen 11
C Input/Output Beste Möglichkeit für user non-readable Datei Allgemeine Java-Themen 7
G Threads Gibt es eine Möglichkeit des Nichtblokierens? Allgemeine Java-Themen 5
L Java TimeZone für bestimmten offset -> Bessere Möglichkeit? Allgemeine Java-Themen 2
C Beste Möglichkeit eine jar mit großem Heapspace zu starten ? Allgemeine Java-Themen 8
M Javamail -> andere Möglichkeit für Attachment Allgemeine Java-Themen 5
M Java lernen, ist das eine gute Möglichkeit? Allgemeine Java-Themen 5
M Andere Möglichkeit zu casten Allgemeine Java-Themen 8
T Schnellste Möglichkeit Datenverarbeitung Allgemeine Java-Themen 5
T Schnellset Möglichkeit Datei einzulesen Allgemeine Java-Themen 11
K Möglichkeit zur eindeutigen UserID Allgemeine Java-Themen 10
T Möglichkeit um eine Taste zu drücken? Allgemeine Java-Themen 2
M Funktion als Parameter oder andere Möglichkeit Allgemeine Java-Themen 3
D Java kleinste Zeiteinheit Allgemeine Java-Themen 59
Binary.Coder Kleinste obere Schranke O(n) und Größte untere Schranke Omega(n) Allgemeine Java-Themen 4
G Die kleinste Klasse der Welt Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben