Dichotomie avec Python 3

Classe et attention

Puisque la dichotomie a été écrite dans la classe d'algorithme, elle a été implémentée en Python3. Puisque le tableau inférieur est détruit (les éléments sont effacés), il est préférable de copier les données et de les exécuter lors de leur utilisation réelle, ou de modifier les conditions en utilisant des variables telles que gauche et droite. alors. J'ai pensé qu'il serait plus pratique d'en faire une fonction, mais Python peut être recherché en utilisant in, et je l'ai juste codé dans la pratique de l'algorithme, donc c'est bien fait, oui.

Description de la source

Préparez une liste appropriée et triez-la par ordre croissant. Enregistrez le numéro que vous souhaitez trouver dans sa_num. Utilisez cnt pour compter le nombre de fois que vous avez traité pendant la recherche. end est utilisé comme condition de fin et suc est utilisé comme indicateur de réussite. Répéter si end est 0 Si l'élément est 1, il est terminé si seul cet élément est examiné, alors marquez-le comme end = 1. Sinon, obtenez la médiane. Si la valeur médiane et la valeur que vous souhaitez rechercher ne correspondent pas, l'amplitude de la valeur médiane et la valeur que vous souhaitez rechercher est comparée. Si la valeur médiane est plus grande, la valeur que vous voulez trouver va de 0 à index, vous n'avez donc pas besoin du côté droit du tableau (de l'index à la fin), supprimez-le en utilisant une tranche. Au contraire, si elle est inférieure à la valeur médiane, le côté gauche est supprimé. Si le nombre d'éléments du tableau devient 1, retirez les éléments et comparez-les à la valeur numérique que vous souhaitez rechercher. Si vous ne trouvez pas le numéro que vous recherchez, vous avez terminé.


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('Impossible de localiser.')
            suc = 1
            end = 1

if suc != 1:

    print(str(cnt) + 'Trouvé dans la deuxième recherche.')

else:

    print(str(cnt) + 'J'ai cherché plusieurs fois mais je ne l'ai pas trouvé.')


Recommended Posts

Dichotomie avec python
Dichotomie avec Python 3
Recherche séquentielle avec Python
Dichotomie avec Python
Recherche de bisection (python2.7) mémo
[Python] Recherche de bisection ABC155D
Recherche binaire en Python
Recherche binaire en Python / C ++
Algorithme en Python (dichotomie)
Recherche de bits complète avec Python
Les moteurs de recherche fonctionnent avec python
Rechercher des tweets Twitter avec Python
Rationalisez la recherche Web avec Python
Ecrire une dichotomie en Python
FizzBuzz en Python3
Grattage avec Python
Statistiques avec python
Grattage avec Python
Python avec Go
Twilio avec Python
Jouez avec 2016-Python
visualiser la recherche binaire
Testé avec Python
ABC146C (dichotomie)
avec syntaxe (Python)
Bingo avec python
Zundokokiyoshi avec python
Excel avec Python
Micro-ordinateur avec Python
Cast avec python
Essayez de travailler avec des données binaires en Python
Algorithme en Python (ABC 146 C Dichotomy
Rechercher le labyrinthe avec l'algorithme python A *
Communication série avec Python
Zip, décompressez avec python
Django 1.11 a démarré avec Python3.6
Jugement des nombres premiers avec Python
Python avec eclipse + PyDev.
Communication de socket avec Python
Analyse de données avec python 2
Grattage en Python (préparation)
Essayez de gratter avec Python.
Sortie CSV de la recherche Google avec [Python]! 【Facile】
Rechercher et télécharger automatiquement des vidéos YouTube avec Python
Apprendre Python avec ChemTHEATER 03
"Orienté objet" appris avec python
Exécutez Python avec VBA
Manipuler yaml avec python
Résolvez AtCoder 167 avec python
Communication série avec python
[Python] Utiliser JSON avec Python
Apprendre Python avec ChemTHEATER 05-1
Apprenez Python avec ChemTHEATER
Raisonnement causal et recherche causale par Python (pour les débutants)
1.1 Premiers pas avec Python
Exercice Python Recherche prioritaire sur 1 largeur
Binarisation avec OpenCV / Python