[GO] Binäre Suche in Python

Dies ist Qiitas erster Beitrag.

Dieses Mal habe ich eine binäre Suche mit zwei Mustern implementiert, Schleife und rekursiv.

Binäre Suche in Schleife

binary_search_loop.py


from typing import List


def binary_search_loop(data: List[int], target: int) -> int:
    left, right = 0, len(data)

    while left <= right:
        mid = (left + right) // 2
        if data[mid] == target:
            return mid
        elif data[mid] < target:
            left = mid + 1
        else:
            right = mid - 1

    return None


if __name__ == "__main__":
    data: List[int] = [int(x) for x in input("Sortiertes Array(Raum begrenzt)Eingeben: ").split()] #Ich habe die Einschlussnotation verwendet
    target = int(input("Ziel eingeben: "))

    result = binary_search_loop(data, target)
    if result is not None:
        print(f"found: {result}War Zweiter")
    else:
        print("not found")

Rekursive binäre Suche

binary_search_recursion.py


from typing import List


def binary_search_recursion(data: List[int], target: int) -> int:
    def recursion(left=0, right=len(data) - 1):
        if left > right:
            return None

        mid = (left + right) // 2
        if data[mid] == target:
            return mid
        elif data[mid] < target:
            return recursion(mid + 1, right)
        else:
            return recursion(left, mid - 1)

    return recursion()


if __name__ == "__main__":
    data: List[int] = list(map(int, input("Sortiertes Array(Raum begrenzt)Eingeben: ").split())) #Karte verwenden
    target = int(input("Ziel eingeben: "))

    result = binary_search_recursion(data, target)
    if result is not None:
        print(f"found: {result}War Zweiter")
    else:
        print("not found")

Was mir aufgefallen ist

Recommended Posts

Dichotomie mit Python
Binäre Suche in Python
Binäre Suche in Python / C ++
Memo zur Bisektionssuche (python2.7)
[Python] Bisection-Suche ABC155D
Lineare Suche in Python
Dichotomie mit Python
Dichotomie mit Python 3
Algorithmus in Python (ABC 146 C Dichotomie
Algorithmus in Python (Breitenprioritätssuche, bfs)
Speichern Sie die Binärdatei in Python
Erstellen Sie eine Binärdatei in Python
Algorithmus in Python (Tiefenprioritätssuche, dfs)
Schreiben Sie eine Suche mit Tiefenpriorität in Python
Suche nach Tiefenpriorität mit Stack in Python
Python in der Optimierung
CURL in Python
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
Metaanalyse in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Visualisieren Sie die binäre Suche
Quicksort in Python
nCr in Python
N-Gramm in Python
Programmieren mit Python
Plink in Python
Konstante in Python
ABC146C (Dichotomie)
FizzBuzz in Python
Schritt AIC in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
In Python flach drücken
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Suchen und spielen Sie YouTube-Videos mit Python
Auf der Suche nach dem schnellsten FizzBuzz in Python