Kennt jemand einen Algorithmus, der berechnet, um wie viele Stellen ein sortiertes Array zyklisch verschoben wurde und dabei in logarithmischer Zeit arbeitet?
Der Algorithmus soll z.B. zur Eingabe [23, 25, 36, 1, 4, 8, 12, 15, 18] 3 ausgeben, da die Eingabe dem Array [1, 4, 8, 12, 15, 18, 23, 25, 36], welches um 3 nach links verschoben wurde, entspricht. Wenn das Array sortiert ist soll 0 zurückgegeben werden. Man kann davon ausgehen, dass das Array sortiert ist oder aus einer zyklischen Verschiebung eines sortierten Arrays entstanden ist.
Ich habe versucht, das ganze über eine Abwandlung von binärer Suche zu lösen, bin mir aber nicht sicher, wie ich die intervallgrenzen wählen soll und welche Bedingung man überprüfen muss