Naja. Es geht (mir) nicht um frühe (oder vorzeitige) Optmierungen. Und auch nicht darum, ob ein Programm nur 40 oder 60 Minuten braucht. Es geht auch nur bedingt um Performance. Es geht (und ich weiß, dass du das jetzt als Anlaß zur gegen-Kritik sehen wirst) nicht zuletzt ganz einfach ums
Prinzip.
Diejenigen, die bestimmte (meintetwegen "akademsiche") Qualitätsansprüche an ihre Software stellen, werden mich verstehen. Diejenigen, die (im Gegensatz zu mir) ausschließlich in der freien Wirtschaft (d.h. für die Industrie) arbeiten, werden mich vielleicht auch verstehen, aber AUCH den anderen Standpunkt, dass man eben manchmal was Hacken (sorry: "besonders kurz schreiben") muss, um Zeitvorgaben einzuhalten (ob sich DAS in diesem Beispiel lohnt, ist eine andere Frage).
Bisher wissen wir nicht, wie groß die übergebenen Arrays sind. Wir können davon ausgehen, dass sie klein sind, und die Aufgabe lösen, indem wir 2 Zeilen code schreiben und "sort" verwenden. Oder wir können universell einsetzbaren, vorausschauenden, und (in bezug auf die Laufzeit)
optimalen Code schreiben, indem wir eine simple Schleife verwenden. Wenn die Arrays klein sind, ist die Schleife nicht nachteilhaft, sondern bringt einen vernachlässigbaren Vorteil. Wenn die arrays groß sind, bringt die Schleife u.U. einen DEUTLICHEN Vorteil, und man erspart sich den einen oder anderen Profilerlauf....
Bestimmte Dinge sehe ich eben als selbstverständlich an. Dazu gehört dass man
1. nicht sinnlos (Arbeits)Zeit verschwendet, indem man "besonders optimierten" Code schreibt, der keinen Vorteil bringt
2. nicht sinnlos (Rechen)Zeit verschwendet, indem man den Rechner sinnlosen Müll berechnen läßt
Vielleicht werden die beiden Punkte (in der Industrie und im nicht-industriellen Bereich, aber auch von Person zu Person) unterschiedlich gewichtet. Aber ich würde die Minimumsuche ebenowenig über eine Sortierung lösen, wie etwa die Enthaltenseinsabfrage bei einem Array über "Arrays.asList(array).contains(objekt)". In beiden Fällen schreibt man eine Schleife, und gut ist.
maki hat gesagt.:
Für "normale" Anwendungen dagegen spielt es wirklich nur noch eine untergeordnete Rolle. Fachliche Fehler sind dagegen kaum verzeihbar, da hast du dann mal schnell ein richtiges Drama am Hals wenn's schlecht läuft.
Fachliche Fehler? Zum Beispiel, wenn jemand diese praktische Funktion benutzt, um sich das minimale Element eines Arrays bestimmen zu lassen, und sich dann wundert, warum sein komplettes Programm nur Mist ausspuckt? Bis man herausgefunden hat, das so eine unverfängliche, triviale Funktion wie die Minimumsuche, die ja garantiert nur einmal durch den Array laufen muß, bewirkt, dass der übergebene Array nachher
sortiert ist, kann eine Weile ins Land gehen, und die eine oder andere Deadline verstreichen.........
Fang' jetzt aber bitte nicht an mit array.clone() - dadurch wird es nicht besser, sondern noch schlechter.