[GO] Dichotomie mit Python 3

Klassenzimmer & Aufmerksamkeit

Da die Dichotomie in der Algorithmusklasse geschrieben wurde, wurde sie in Python3 implementiert. Da das untere Array zerstört wird (Elemente werden gelöscht), ist es besser, die Daten zu kopieren und auszuführen, wenn sie tatsächlich verwendet werden, oder die Bedingungen mithilfe von Variablen wie links und rechts zu ändern. damit. Ich dachte, es wäre bequemer, es zu einer Funktion zu machen, aber Python kann mit in durchsucht werden, und ich habe es nur in der Praxis des Algorithmus codiert, also ist es gut gemacht, ja.

Quellenbeschreibung

Bereiten Sie eine entsprechende Liste vor und sortieren Sie sie in aufsteigender Reihenfolge. Speichern Sie die Nummer, die Sie finden möchten, in sa_num. Verwenden Sie cnt, um zu zählen, wie oft Sie während der Suche verarbeitet haben. Ende wird als Endbedingung verwendet und Erfolg wird als Erfolgsflagge verwendet. Wiederholen, wenn das Ende 0 ist Wenn das Element 1 ist, ist es das Ende, wenn nur dieses Element untersucht wird. Setzen Sie also end = 1 und markieren Sie es. Wenn nicht, erhalten Sie den Median. Wenn der Medianwert und der Wert, nach dem Sie suchen möchten, nicht übereinstimmen, werden die Größe des Medianwerts und der Wert, nach dem Sie suchen möchten, verglichen. Wenn der Medianwert größer ist, liegt der Wert, den Sie suchen möchten, zwischen 0 und Index. Sie benötigen also nicht die rechte Seite des Arrays (vom Index bis zum Ende). Löschen Sie ihn daher mit einem Slice. Im Gegenteil, wenn es kleiner als der Medianwert ist, wird die linke Seite gelöscht. Wenn die Anzahl der Elemente im Array 1 wird, nehmen Sie die Elemente heraus und vergleichen Sie sie mit dem numerischen Wert, den Sie suchen möchten. Wenn Sie die gesuchte Nummer nicht finden können, sind Sie fertig.


lis = [15,23,25,601,65,87,9,103,15,30,11,13]
lis.sort()

sa_num = 25

cnt = 0
end = 0
suc = 0

while end == 0:

    cnt += 1

    print(lis)

    if len(lis) != 1:

        index = int(len(lis) / 2)

        if lis[index] == sa_num:

            print('suc' + str(sa_num))
            end = 1

        elif lis[index] > sa_num:

            del lis[index:]

        elif lis[index] < sa_num:

            del lis[0:index]

    else:

        if lis[0] == sa_num:

            print(sa_num)
            end = 1

        else:

            print('Konnte nicht gefunden werden.')
            suc = 1
            end = 1

if suc != 1:

    print(str(cnt) + 'Gefunden in der zweiten Suche.')

else:

    print(str(cnt) + 'Ich habe mehrmals gesucht, konnte es aber nicht finden.')


Recommended Posts

Dichotomie mit Python
Dichotomie mit Python 3
Sequentielle Suche mit Python
Dichotomie mit Python
Memo zur Bisektionssuche (python2.7)
[Python] Bisection-Suche ABC155D
Binäre Suche in Python
Binäre Suche in Python / C ++
Algorithmus in Python (Dichotomie)
Vollbit-Suche mit Python
Suchmaschinen arbeiten mit Python
Suche nach Twitter-Tweets mit Python
Optimieren Sie die Websuche mit Python
Schreiben Sie eine Dichotomie in Python
FizzBuzz in Python3
Scraping mit Python
Statistik mit Python
Scraping mit Python
Python mit Go
Twilio mit Python
Spielen Sie mit 2016-Python
Visualisieren Sie die binäre Suche
Getestet mit Python
ABC146C (Dichotomie)
mit Syntax (Python)
Bingo mit Python
Zundokokiyoshi mit Python
Excel mit Python
Mikrocomputer mit Python
Mit Python besetzen
Versuchen Sie, mit Binärdaten in Python zu arbeiten
Algorithmus in Python (ABC 146 C Dichotomie
Durchsuche das Labyrinth mit dem Python A * -Algorithmus
Serielle Kommunikation mit Python
Zip, entpacken mit Python
Django 1.11 wurde mit Python3.6 gestartet
Primzahlbeurteilung mit Python
Python mit Eclipse + PyDev.
Socket-Kommunikation mit Python
Datenanalyse mit Python 2
Scraping in Python (Vorbereitung)
Versuchen Sie es mit Python.
CSV-Ausgabe der Google-Suche mit [Python]! 【Einfach】
Suchen und laden Sie YouTube-Videos automatisch mit Python herunter
Python lernen mit ChemTHEATER 03
"Objektorientiert" mit Python gelernt
Führen Sie Python mit VBA aus
Umgang mit Yaml mit Python
Löse AtCoder 167 mit Python
Serielle Kommunikation mit Python
[Python] Verwenden Sie JSON mit Python
Python lernen mit ChemTHEATER 05-1
Lerne Python mit ChemTHEATER
Kausales Denken und kausale Suche von Python (für Anfänger)
1.1 Erste Schritte mit Python
Python-Übung 1-Breiten-Prioritätssuche
Binarisierung mit OpenCV / Python