001 package de.hska.info1.uebung.rekursion;
002
003 /**
004 * Rekursive Minimussuche.
005 *
006 * @author Christian Pape
007 */
008 public class Minimum {
009
010 /**
011 * Sucht die kleinste Zahl im Feld a und
012 * gibt sie zurück.
013 */
014 public int sucheMinimum(int [] a) {
015 return sucheMinimum(a, 0);
016 }
017
018 /**
019 * Sucht die kleinste Zahl rekursiv im Feld a
020 * innerhalb des Bereichs links bis zum Ende.
021 */
022 private int sucheMinimum(int [] a, int links) {
023 if (links == a.length - 1) { // Rek.abbruch
024 // nur noch ein Element im rechten Bereich
025 return a[links];
026 } else {
027 // suche rekursiv eins weiter rechts im Bereich
028 int minimumRechts = sucheMinimum(a, links + 1);
029 if (minimumRechts < a[links]) {
030 return minimumRechts;
031 } else {
032 return a[links];
033 }
034 }
035
036 }
037 }