Transcription
1. Introduction: Bonjour à tous. Bienvenue dans ce cours sur les algorithmes
les plus fondamentaux. Ce cours vous donnera des leçons
pratiques pour implémenter certains des algorithmes les plus élémentaires à partir de zéro. Si vous débutez en programmation
ou si vous êtes un programmeur expérimenté, ce cours vous sera utile. Cela vous donnera
l'occasion de revenir
à l'essentiel et de revoir la façon dont les
rouages de certains des algorithmes
les plus fondamentaux s'imbriquent. J'enseigne en utilisant un
langage très simple, sans jargon. Tout d'abord, la logique est
expliquée sur papier, puis le programme
est développé à partir de
zéro à l'aide de l'outil PyCharm. Vous aurez besoin d'un ordinateur
connecté à Internet. Et aux logiciels
Anaconda et PyCharm. Veuillez prendre la longueur de l'os du talon pour le processus d'installation. Vous devez être prêt
à écrire et à exécuter programme dans l'environnement
PyCharm. Avant de commencer ce cours. À la fin, vous maîtriserez ces algorithmes de base et nouveaux programmeurs
développeront l'appétit pour
davantage de programmation. Ce qui suit
est destiné à des leçons sur certains des algorithmes les plus élémentaires et à une implémentation
à partir de zéro. Listen to a une
manipulation simple comme échauffement. leçons 3.4 portent sur la
recherche binaire et le partitionnement des modifications, algorithmes
très basiques,
comme vous le savez. Enfin, sur moins de cinq, nous avons un projet de classe sur implémentation de l'
algorithme Quicksort à partir de zéro. C'est tout à propos de ça. J'ai
hâte de vous y voir tous.
2. Tableau: Bonjour à tous. Dans cette leçon, nous allons découvrir un type de données
très basique qui permet de stocker plusieurs
objets ensemble. C'est ce qu'on appelle un tableau. Un tableau est un ensemble d'objets stockés côte à côte
dans la mémoire d'un ordinateur. Dans notre discussion, nous allons prendre des nombres entiers comme des objets. Prenons un exemple. Est un tableau contenant
les nombres 289214 moins six en Python. Et le tableau est également
appelé liste. Les éléments sont placés
côte à côte dans la mémoire. La position de chaque
élément du tableau est appelée index. L'indice commence à zéro. Cela signifie que l'indice
du premier élément est nul. L'indice du deuxième
élément est un, l'indice du troisième élément
est deux, et ainsi de suite. De cette façon, l'indice
du dernier élément est
inférieur d'un à la
longueur totale du tableau. Donc, dans le tableau donné, il y a cinq éléments
et les indices sont 01234. Voyons comment
accéder à chaque élément d' un tableau donné et imprimer
les nombres. En Python. La fonction d'impression est
utilisée pour l'impression. fonction d'impression peut
imprimer l'ensemble additionné en un seul
appel à cette fonction. Cela signifie que la fonction d'impression connaît la
structure interne du tableau. Pour accéder à chaque
élément du tableau, nous devons parcourir le
tableau à l'aide d'une boucle for. Cette boucle pour imprime chaque
élément du tableau. La boucle for suivante
passe en revue chaque index
du tableau et affiche la
valeur de cet indice. Cette boucle for passe en
revue chaque index et les
valeurs correspondantes simultanément et les imprime tous les deux. Je vous suggère d'en savoir plus
sur ces deux fonctions, range et enumerate, car elles sont très pratiques pour
écrire une boucle. Ensuite, nous allons implémenter
un algorithme pour calculer la somme
cumulée d'un tableau d'entiers. Alors, qu'est-ce que Running Sum ? somme des éléments d'
un tableau est la somme de tous les éléments compris entre zéro et Pi. Ainsi, après la somme, nous obtenons la vallée supérieure comme la somme cumulée
du tableau d'origine. somme cumulée pour le premier
élément est l'élément lui-même. somme
cumulée pour le deuxième élément est la somme des
deux premiers éléments. somme cumulée pour le
troisième élément est la somme de trois
éléments et ainsi de suite. Nous aimons les étapes
dans un langage simple et essayons de visualiser comment l'algorithme
s'exécute étape par étape. Essayons de visualiser
cet algorithme. Commencez par un pointeur p sur
le deuxième élément de a. Nous avons
donc un pointeur p. Faisons-le pointer vers le
deuxième élément qui est a. Donc, ici p est un pointeur, ce qui signifie qu'il contient la valeur de Nous avons
donc un pointeur p.
Faisons-le pointer vers le
deuxième élément qui est a.
Donc, ici p est un pointeur,
ce qui signifie qu'il contient la valeur de
indice du deuxième
élément, qui est un. Donc, actuellement, P est égal à un. Maintenant, nous devons
remplacer la valeur en p par la somme de sa valeur
et de la valeur précédente. Cela signifie que nous remplaçons huit par huit plus
deux, soit dix. Ensuite, nous avançons d'un pas
et faisons de même. Cela signifie remplacer 91 par 91 plus dix, soit 101. Maintenant, nous faisons un pas en avant. Il joue la valeur pour par la
somme de 4,101, soit 105. Et nous continuons de la même façon. Déplacez donc B d'un pas en avant et remplacez la valeur
actuelle qui est de moins six par moins six plus
105, soit 99. Et nous sommes arrivés
au bout du tableau. L'algorithme s'arrête donc là. De cette façon, nous pouvons trouver la somme cumulée d'un tableau de nombres
donné. Notez que nous n'avons pas créé de nouvelle LEA pour
trouver cette somme courante, nous avons remplacé
chaque élément du tableau par son élément d'
exécution correspondant. Ensuite, nous allons essayer d'
inverser cela, c'est-à-dire qu'avec un tableau, disons 289214 moins six, nous inverserons l'ordre des
éléments de ce tableau. Ainsi, après l'inversion, le tableau
deviendra moins 6492182. Nous allons sélectionner l'algorithme
en langage clair. Nous avons donc d'abord défini deux pointeurs sur le premier et le dernier élément
du tableau, CPS et PE. Nous avons donc des PA et des PE. Ensuite, nous devons échanger
les valeurs de P, S&P, puis avancer d' un pas et PE
reculer d'un pas. Cela signifie que nous déplaçons P S&P l'un vers
l'autre d'un pas chacun. Et nous devons faire ce mouvement en
une étape de chacune et échanger les valeurs correspondantes
jusqu'à ce qu'elles se croisent. Faisons-le étape par étape et essayons de voir ce
qui se passe réellement. Nous avons donc P, S&P aux deux extrémités. Nous devons échanger leurs valeurs. Cela signifie que nous devons échanger les positions de
deux et moins six. Donc on amène ici, amène moins six ici. Ensuite, nous avançons VS d'un pas en avant et PE d'
un pas en arrière. Et encore une fois, échangez leurs valeurs. Nous transportons des bières et des b0. Ils pointent maintenant
vers le même endroit. Les sanglots n'ont donc aucun effet. Fondamentalement Nous pouvons nous arrêter ici ou si nous voulons passer
à la quatrième étape, une fois que le père je pourrai le faire et depuis, ils se sont
croisés. Nous arrêtons. De cette façon. Nous pouvons inverser les éléments du tableau à
l'aide de deux pointeurs. J'espère que vous aurez l'idée qui se
cache derrière ces algorithmes. Dans cette leçon, nous avons
essayé de visualiser les états de certains algorithmes
très basiques. Nous n'avons pas
encore écrit de code Python. Dans la leçon suivante,
nous allons écrire et exécuter du code réel
dans un environnement Python. C'est donc tout pour cette leçon.
3. Algorithme de séparation de réseau: Bonjour à tous. Dans cette leçon, nous allons en apprendre davantage sur le partitionnement. Alors, qu'est-ce que le partitionnement d'Ellie ? Expliquons-le à l'aide d'un exemple. Prenons un LEA avec
les numéros suivants. C'est-à-dire que 387-272-1402
partitionne ce tableau, nous devons d'abord choisir un numéro
spécial appelé pivot, qui est l'un des nombres
présents dans le tableau. Supposons que nous
choisissions quatre comme numéro pivot. Nous devons réorganiser les
nombres dans le tableau. Ainsi, après avoir réorganisé tous les nombres
situés à gauche du pivot, ou inférieurs ou égaux
à la valeur du pivot. Et tous les nombres
situés à droite
du pivot sont supérieurs
ou égaux à la valeur du pivot. Si nous prenons le SDP vert, une solution possible pourrait
être celle indiquée à l'écran. La solution est 032-14-7078. Notez que les nombres situés à gauche
du pivot sont
inférieurs à quatre. Chiffres à droite de
quatre, égaux à quatre. Le sous-tableau gauche et les jambes ne sont pas nécessairement
triés par eux-mêmes. Notez également que si nous avions
trié l'ensemble du tableau, après le partitionnement,
la position, le pivot prend
la même position que celle qu'il
obtiendrait après avoir trié
l'ensemble du tableau. Extrait pour développer un algorithme pour partitionner ce LA donné. Passons en revue l'
algorithme étape par étape. abord, nous devons placer le pivot au premier
emplacement de ce tableau. Ensuite, nous devons
prendre deux pointeurs, P1 et P2, et les
faire pointer vers les
deux premiers éléments respectivement. Ainsi, p1 pointe vers le premier élément et v2
pointe vers le second élément. Ensuite, nous devons déplacer P2 étape par étape
jusqu'à la fin de cette Los Angeles. Et tout en déplaçant cela, à chaque étape, nous devons faire ce que l'
on appelle check and swap. Alors, que devons-nous
faire comme suit ? À chaque position de P2, nous devons vérifier si la valeur en p2 est inférieure ou
égale au pivot. Si non, ne faites rien. Mais si c'est le cas, nous
devons incrémenter l'
autre pointeur p1 d' un pas, puis échanger
les valeurs de P1 et P2 s'arrêtera lorsque P2 atteindra
la fin du tableau. Réalisons les étapes. Donc, actuellement, P2 est en position deux et
sa valeur est huit. Donc, P2 n'est pas
inférieur à ce pour quoi b a été travaillé. Les deux doivent donc être dus en une seule étape. Donc, 77 n'est encore une fois pas
inférieur à quatre. Nous déplaçons donc P2 d'un pas. Maintenant, deux, c'est
moins que le pivot pour. Nous devons donc effectuer
cette sous-étape ici. Donc, ce que nous devons faire maintenant,
c'est
avancer p1 d'un pas , puis échanger les valeurs de P1 et P2. Déplacez ensuite à nouveau P2 d'un pas. Et encore une fois, nous voyons
que la valeur en P2, qui est activée, est
inférieure ou égale à quatre. Nous devons donc
recommencer cette étape d'échange, qui consiste à transformer d'abord
P1 d'une étape. Ensuite, échangez les
valeurs de P1 et P2. Déplacez à nouveau P2 d'un pas. Et encore une fois, nous observons
que la valeur en P2, qui est de trois, est
inférieure ou égale à quatre. Nous déplaçons donc à nouveau p1 d'un
pas, puis nous effectuons l'échange. Plus 321 étapes. Et nous voyons que zéro est encore une fois
inférieur à quatre. Nous nous déplaçons donc étape par étape,
puis effectuons l'échange. À ce stade, P2 se trouve à
la fin de ce tableau. La boucle sur P2 est donc terminée. Maintenant, comme dernière étape, nous devons échanger le premier
emplacement du tableau,
qui est la valeur pivot, par p1. Cela placera le pivot au
bon endroit trié. Et maintenant, nous voyons que tous les nombres à gauche du pivot ou
inférieurs à quatre. Et tous les nombres
situés à droite du pivot sont supérieurs ou égaux
à la valeur pivot de. Il s'agit d'une
partition valide du tableau. J'espère que cela a aidé
à visualiser les étapes internes lors de
l'apprentissage de l'algorithme. Ensuite, nous allons passer en revue
le code Python de cet algorithme de partition. Voici une fonction Python
appelée partition, qui prend une entrée appelée a, qui est Danny, et partitionne
par rapport à un pivot. Et cela suppose que le pivot est situé à la première
position de ce tableau. Passons en revue cet
algorithme ligne par ligne. Commencez par initialiser
les deux pointeurs, p1 et p2 à 0,1 respectivement. Ensuite, nous définissons le pivot en lisant le premier emplacement du
tableau qui est un zéro. Ensuite, comme nous l'avons mentionné plus tôt, nous aimons regarder P2. Ainsi, P2 se déplace de son emplacement actuel jusqu'à
la fin du tableau. La fin du tableau est
indiquée par la longueur du tableau. Ensuite, lors de la prochaine déclaration if, nous mettons en œuvre la logique
dont nous avons parlé plus tôt. C'est-à-dire que si a de p2 est
inférieur à égal à pivot, alors nous déplaçons p1 puis échangeons
les valeurs de P1 et P2. Cette ligne AFP,
une virgule f p2 est égale à une f B2, la virgule f de p1 est l'expression Python
permettant d'échanger deux valeurs. Ici, les valeurs sont
a de P1 et P2. Il s'agit donc d'une syntaxe très
intuitive. Et puis commencez
cette instruction if, nous continuons à déplacer P2, eh bien, une étape dans chaque
itération de cette boucle while. Et quand ils sortent de
la boucle while, c' est-à-dire
que lorsque P2 atteint
la fin du tableau, nous remplaçons à
nouveau zéro et a de P1. Cela permet d'amener le pivot
de son emplacement actuel, qui est le début
du tableau, à son emplacement final. Et c'est tout pour cette leçon.
4. Programme de répartition de réseau de Python: Bonjour à tous. Dans cette leçon, nous allons exécuter le programme Python pour le partitionnement de
tableaux. Nous avons ici la fonction de partition
que j'ai déjà vue. Il existe également une fonction principale
qui crée une liste appelée ma liste et appelle la fonction de partition
avec ma liste en entrée. Exécutons le programme
en mode débogage. Mettons un point d'arrêt dans la fonction
principale et exécutons-la. Nous sommes donc au point de rupture. Et créons d'abord
la liste, la mienne. Veuillez garder un œil sur la section de ces
variables et vous pourrez voir les valeurs des variables. Et puis entrez la fonction de
partition. Initialisez d'abord p1 et
p2, les deux pointeurs. Et puis définissez le pivot, que nous supposons être le premier élément
du tableau d'entrée. Donc, ici, le pivot est quatre. Entrons dans la boucle sur P2. P2 se déplace donc de son emplacement actuel à
la fin du tableau. Tout d'abord, si P2 est
égal à huit, ce qui n'est pas inférieur à la période quatre. Nous passons donc à l'instruction if et passons à l'
itération suivante de la boucle. Maintenant, si P2 est égal à 77, ce qui n'est pas inférieur
au pivot. Nous passons donc à l'itération
suivante. Maintenant, si P2 est égal à deux, ce qui est inférieur
au pivot quatre. Nous entrons donc dans
l'instruction if, incrémentons au-delà de
u1 et effectuons le swap. Nous passons à l'itération suivante. L'AF P2 est maintenant activé. Entrez à nouveau l'
instruction if et effectuez le swap. Dans l'itération suivante
de P2, il y a trois, ce qui est
inférieur au pivot quatre. Encore une fois, nous entrons dans l'
instruction if et effectuons le swap. Dans la prochaine itération. Si B2 est nul, ce qui est
inférieur à p, pourquoi ? Nous entrons donc dans l'instruction if
et recommençons le swap. Et maintenant, P2 a atteint
la fin du tableau. Nous sortons donc de
la boucle des temps. Ensuite, nous effectuons l'échange final, la valeur pivot, qui se trouve
au premier endroit avec b1. Et cela complète
l'algorithme. Pas dans la section des variables. Vous pouvez consulter la liste de
l'état d'esprit actuel. Et il a été partitionné. Donc tous les nombres à gauche de quatre ou
moins de quatre, et tous les nombres à droite de quatre ou
plus égaux à quatre. Donc, si je dois expliquer l'ensemble de l'algorithme dans
un langage très simple, serait comme ça. Il existe deux
pointeurs, p1 et p2. Que font-ils réellement ? B1 maintient une limite
entre les deux partitions. La partition de gauche, qui va
du début du tableau jusqu'à p1, est l'ensemble des nombres inférieurs à
la valeur pivot. Et les nombres à
droite de P1 sont les nombres supérieurs
à égaux à la valeur pivot. Alors, comment p1 et
p2 y parviennent-ils ? B2 fait exploser chaque nouveau
numéro du tableau. Et si ce nombre nouvellement
exploré est inférieur
à la valeur pivot, B1 étend
la limite gauche et ce nouveau nombre est déplacé
dans la partition gauche. En échangeant. Ainsi, la partition de gauche
contient toujours des valeurs
inférieures à celles du pivot. Et la partition de droite contient des valeurs supérieures
à égales à la valeur pivot. Notez que la bonne partition commence après T1 et
s'étend jusqu'à P2. Je vous suggère de parcourir ce programme dans votre environnement de
programmation Python. Pour que les étapes internes
soient très claires pour vous. Et c'est tout pour cette leçon.
5. Algorithme de recherche binaire: Bonjour à tous. Dans cette leçon, nous allons en apprendre davantage sur la recherche binaire. Alors, qu'est-ce que la recherche binaire ? Ici ? On nous donne un
tableau trié de nombres entiers, et on nous donne également
un autre entier x, nous devons trouver l'emplacement
de x dans ce tableau trié a. Si x n'est pas présent dans a, alors nous pouvons renvoyer moins un. Prenons un exemple. On nous donne le tableau trié a, c'est-à-dire que vous pouvez le voir
trié par ordre croissant. Et on nous donne également
un autre nombre x. Nous devons trouver
l'emplacement de x. Si x est présent dans a, sinon nous devons
renvoyer moins un. Nous pouvons donc voir ici que
sept sont présents dans la LEA. Et la position de
sept est l'index quatre. Cela signifie la cinquième place. Nous devons donc en renvoyer quatre. Dans ce cas. Si la valeur de x est, alors nous pouvons voir que neuf
n'est pas présent dans le a donné. La recherche binaire
devrait
donc renvoyer moins un. Essayons de visualiser l'algorithme de recherche
binaire. On nous donne le tableau trié, qui est trié par ordre
croissant. Et nous devons rechercher
un nombre X donné dans a. Ici, la valeur de x est sept, donc nous devons rechercher sept. Dans un premier temps, notez
que nous pouvons parcourir l'ensemble du tableau un élément
à la fois et rechercher x. Cela prendra n étapes, où n est le nombre total
d'éléments du tableau. Si le tableau est trop long, le temps nécessaire pour effectuer une recherche de cette manière
sera également très long. Ce n'est donc pas un moyen efficace. Si le tableau n'a pas été trié, nous
devrons
procéder de cette façon. Mais pour l'instant, le
tableau est trié. Nous devons donc utiliser cette propriété pour accélérer notre algorithme. Écrivons l'algorithme
dans un langage simple. abord, nous devons définir deux points au début
et à la fin du tableau. Disons que le LPS
et le p. Nous avons dit que P est au début
et p à la fin. Ensuite, nous trouvons le
point médian de P S&P ce qui signifie que nous trouvons P S plus p tous divisés par deux
et arrondis en dessous. C'est ce qu'on appelle le point médian. Notez que cela est biaisé à
gauche. Cela signifie que P S sûr est égal à
deux et p à trois. Alors le maté fait deux plus 3/2. Et cette division est
une division entière. Le résultat est donc deux. point médian de 2,3 est deux, point
médian de 23,4 est trois. Le point médian de 234,5 est trois. C'est pourquoi on l'appelle « made biaisé
à gauche ». Calculons le
milieu du P S&P actuel. P S est nul et P est
70 plus sept par deux, soit 3,5. arrondi. Bonjour, trois égale trois. Le milieu est donc placé à l'index trois. Maintenant, nous cherchons x. Nous comparons
donc la
valeur chez moi à x.
Si x est égal à mate vous avez trouvé
l'emplacement de x, et nous renvoyons la valeur de la viande. cas contraire, x se trouve soit à droite de la viande,
soit à gauche de la viande. Si x est supérieur à la viande, alors x est à droite de la viande. Et dans ce cas, nous pouvons contourner ce qui
se trouve à gauche de la viande afin de jeter tout
le sous-réseau,
le point de départ. De cette façon, nous pouvons réduire l'espace
de recherche très rapidement. Ainsi, à chaque itération, la
moitié du tableau total
peut être supprimée. Et cela rend cette recherche
binaire très rapide. Maintenant, x est supérieur à trois. Nous déplaçons donc PS. Rencontrez plus un. Cela signifie le juste à
droite du précédent fait. Nous savons maintenant que tout ce qui est laissé à la gauche des pairs
peut être jeté. Nous avons réduit de moitié notre espace de
recherche. Maintenant. Encore une fois, calcule-moi Donc, actuellement, les PACs quatre et p sont sept. Donc, la viande de 4,7 est de 5,5. chiffre arrondi en dessous est cinq Rencontrons-nous donc à cinq heures. Maintenant, la valeur de la valeur pour
la viande est de 88, ce n'est pas égal à x. Et nous voyons que maintenant
x est inférieur au maté. Nous déplaçons donc B pour faire moins un. Maintenant, dans l'itération suivante, nous calculons
à nouveau le milieu. Vous verrez donc que puisque les PA
et les PE ont la même valeur, la valeur de la viande sera
également la même. Encore une fois, nous allons pointer
vers le même endroit. Maintenant. X est égal à x trouvé. Et nous sommes revenus, créés. De cette façon. Nous pouvons trouver l'emplacement
de x dans les données triées. Prenons maintenant un autre exemple où x n'est pas
présent dans la LA, disons x égal à neuf. Encore une fois, nous commençons par le
PAS au début. Et à la fin. Le milieu pointe vers le point médian. Nous comparons la valeur à, qui est trois
avec x, x est neuf. Donc, x doit se trouver à
droite de la viande. Nous déplaçons donc VS pour rencontrer plus un. Et encore une fois, nous calculons,
ce qui est ici. Nous comparons la valeur x avec x. La valeur de x est neuf, donc neuf est supérieur à huit. Donc x doit être la lumière de la viande. Nous déplaçons donc les PA vers le milieu plus un. Maintenant,
nous calculons à nouveau la rencontre , qui
sera identique à bs. Nous comparons x avec Nate et nous trouvons que x est
inférieur à de la viande maintenant. Nous déplaçons donc B au milieu moins un. Et à ce stade, remarquez que P S&P se
croisent. Nous nous arrêtons donc et revenons moins un. Cela signifie que X dans ce cas n'
est pas présent dans
ce tableau trié. Regardons le code Python la fonction de recherche binaire. La fonction prend
deux arguments. Le premier est le tableau, c'est un tableau d'entiers
triés par ordre croissant. Et x est un autre entier. Nous devons trouver l'
emplacement de x dans a. Et si x n'est pas présent, nous renvoyons moins un. Passons en revue la
fonction ligne par ligne. Nous initialisons d'abord P, S&P, les pointeurs de début et de fin. Donc p est, est initialisé à zéro, ou l'indice de l'emplacement le
plus à gauche. Et PE est égal à la
longueur d'un moins un. C'est l'indice de l'emplacement
le plus à droite. Ensuite, nous commençons la boucle
while avec la condition P S est
inférieur à
p , ce qui signifie que nous continuons
avec la boucle while. Les deux pointeurs
ne se croisent pas. Tout d'abord, nous calculons le mate,
qui, comme nous l'avons expliqué précédemment, est la rencontre biaisée à gauche. Ensuite, on vérifie si x
est égal à a ou milieu. Cela signifie une estimation de la valeur. Si a de mid est égal à x, alors nous avons trouvé x et
renvoyons la position
qui est faite. Sinon,
selon que
x est supérieur à a ou si x
est inférieur à la moitié,
nous supprimons la moitié du tableau. Donc, si x est
supérieur à a ou milieu, nous supprimons la moitié gauche
du tableau et la valeur elle-même. Cela signifie que nous sommes
passés au milieu plus un. Si x est inférieur à m. Ensuite, nous supprimons la partie
droite du tableau et nous la mettons au milieu moins un. Et encore une fois, nous calculons maté avec ces
localisations mises à jour de P S&P et nous répétons ainsi. Ainsi, à chaque itération, nous supprimons la moitié du tableau. Au final, deux
choses peuvent donc se produire. Soit X est trouvé
et dans ce cas, nous renvoyons l'
emplacement correspondant de X soit X est introuvable. Et P, S&P se croisent. Et on en sort
en boucle et on en revient moins
un. Dans ce cas. J'espère que vous avez une idée de base du fonctionnement de cet
algorithme de recherche binaire. C'est tout pour cette leçon.
6. Programme de recherche binaire de Python: Bonjour à tous. Dans cette leçon, vous découvrirez le programme Python
pour la recherche binaire. Voici la fonction
de recherche binaire, que vous avez déjà vue. De plus, nous avons écrit une fonction principale qui
appelle la recherche binaire. Mettons donc un point d'arrêt dans la fonction principale et exécutons-la. Nous sommes donc au point de rupture. Donc, d'abord, nous créons un tableau qui est déjà
trié. Comme tu peux le voir. Veuillez garder un œil sur la section des
variables où vous pouvez voir les
valeurs actuelles des variables. Nous définissons x à sept. Ensuite, nous appelons fonction de recherche
binaire
avec a et x comme entrées. Nous voulons trouver l'
emplacement de X dans a. allons
donc entrer dans la fonction de recherche
binaire. abord, P, S&P. Les pointeurs de début et de fin sont initialisés à 0,7 respectivement, comme vous le verrez dans la section des
variables. Ensuite, nous entrons dans la boucle while avec la condition P
est inférieure ou égale à p. Ensuite, nous calculons que
la valeur moyenne du média est de trois. Ensuite, nous vérifions si x
est égal ou inférieur à, égal ou inférieur ou
supérieur à la viande. Notez que lorsque nous
comparons x avec de la viande, nous voulons vraiment dire la
valeur au point a du milieu, si elle est égale pour le rencontrer et que
nous l'avons déjà trouvée, et que la fonction revient. Mais si ce n'est pas le cas, il se réinitialise. Soit p est RPE selon x est
supérieur ou inférieur à. Allons voir. Donc, ici, la valeur
de x est sept comme nous le savons, et a de milieu est trois. Donc x n'est pas égal à x
est supérieur à la moitié. Nous réinitialisons donc le pointeur
ps pour faire plus un. À cette étape, jetez-en la moitié. Passez donc à l'itération suivante. Avec les nouvelles valeurs de P S&P. La nouvelle valeur de P, S
est quatre et p est sept. Nous
examinons donc maintenant le sous-réseau, commençant par l'emplacement de la faille et jusqu'à cet endroit précis, nous calculons à nouveau la rencontre. La valeur de la viande est maintenant de
cinq, soit huit. Donc, actuellement, c'est
moins d'un milieu. Alors ça vient ici. Et maintenant, nous mettons p0
au milieu moins un. Maintenant, regardez les
variables que les sections P, BE et PA ont la même
valeur, soit quatre. Ainsi, pointez vers le même
emplacement dans le tableau. Nous calculons la moyenne. Mid
est aussi pour évidemment. Alors maintenant x est égal à f meet. Et nous retournons au milieu, qui est la valeur quatre. Nous sommes donc revenus de la fonction de recherche binaire
et le résultat est quatre. Cela signifie que X est présent à l'index quatre du tableau trié. Changeons X, 7-9. Et puis
parcourez à nouveau ce programme. Nous avons la même LEA, qui est déjà triée. Nous mettons x à neuf, puis
entrons dans la recherche binaire. Donc P, S&P sont initialisés. Démarrez la boucle. La valeur
initiale de la viande est de trois. Donc x n'est pas égal à
x est supérieur à m, c'est un bs plus un. Et passez à l'itération
suivante. Et maintenant, le MIT a cinq ans. AF créé n'est donc pas égal
à x, est inférieur à x. Nous réinitialisons
donc maintenant
ps pour mettre
des gants et passer à l'itération suivante. Calculez
à nouveau la rencontre, qui est de six. AF a donc pris sa décision maintenant, qui n'est pas égale à x. Non, x est inférieur à a de milieu. Venez certainement ici et
faites une réinitialisation p moins un. Maintenant, notez que la valeur de P, S est de six et la
valeur de B est de cinq. Cela signifie que P et S&P se sont
croisés. Ici, la boucle while se brise
et nous revenons moins un. Vous verrez donc que le
résultat est de moins un. Dans ce cas, la valeur de x n'est pas trouvée dans
le tableau trié, elle renvoie
donc moins un. Je vous suggère de suivre
cette fonction de recherche binaire dans votre
environnement de développement Python afin de vous familiariser
avec les étapes internes. Et appelez cette fonction avec différents tableaux triés
de différentes longueurs. Et ainsi, familiarisez-vous avec le fonctionnement interne
de cet algorithme. C'est tout pour cette leçon.