0 Daumen
780 Aufrufe

Aufgabe:

Analyse von Algorithmen

Ternäre Suche
Wir übertragen die Idee der Binärsuche auf die Suche in einer von drei Teilen.

boolean ternarySearch(int[] a, int low, int high, int v) {
    if (low > high) return false;
    int mid1 = low + (high - low) / 3;
    if (a[mid1] == v) return true;
    if (v < a[mid1]) {
        return ternarySearch(a, low, mid1 - 1, v);
    }
    int mid2 = low + 2 * (high - low) / 3;
    if (a[mid2] == v) return true;
    if (v < a[mid2]) {
        return ternarySearch(a, mid1 + 1, mid2 - 1, v);
    }
    return ternarySearch(a, mid2 + 1, high, v);
}



Analysieren Sie die Komplexität (Anzahl an Vergleichen – worst-case!). Gehen Sie wie folgt vor:
• Erstellen Sie die Rekursionsgleichung (analog zur binären Suche)
• Versuchen Sie, eine Lösung zu „erraten“ – Denken Sie an Binärsuche


Ansatz:

Die erste Frage habe ich beantwortet mit der Rekursionsgleichung T(n) = T (n/3) + 4

Ich weiß nicht genau was man bei der zweiten Frage tun soll? Mit der Rekursionsgleichung irgendwie eine Lösung erraten? Kann mir bitte jemand weiterhelfen?



Vielen Dank im Voraus!

geschlossen: Die Frage gibt's auch unter https://www.stacklounge.de/6353/analyse-von-algorithmen-ternare-suche
von oswald
Avatar von
Deine Frage wurde in die Informatik verschoben. https://www.stacklounge.de/6353/analyse-von-algorithmen-ternare-suche (Gleiches Login wie hier) Bitte reagiere auf den Kommentar dort z.B. mit der Idee, wie sich die Frage inzwischen erledigt hat.

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

1 Antwort
0 Antworten
1 Antwort
Gefragt 5 Jan 2022 von Math828
1 Antwort

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community