package org.hft.dsa; import java.util.Optional; import model.Person; import model.Reader; public class BinarySearch implements Search{ static Person[] suchmenge; @Override public void initialize() { suchmenge = Reader.getSortedSample(); } @Override public Optional lookup(final String key) { return suche(suchmenge, key, 0, suchmenge.length - 1); } public Optional suche(final Person[] s, final String key, final int links,final int rechts){ if(links > rechts) { return Optional.empty();} // nichts gefunden int mitte = (links + rechts)/2; if(s[mitte].equals(key) ) { return (mitte);} // gefunden if(s[mitte].getKey().compareTo(key) > 0) { return suche(s, key, links, mitte - 1); } else { return suche(s, key, mitte + 1, rechts); } } }