Les algorithmes de tableaux les plus fondamentaux - avec Python | Suman Datta | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Les algorithmes de tableaux les plus fondamentaux - avec Python

teacher avatar Suman Datta, just a coder

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction

      1:37

    • 2.

      Tableau - Une introduction simple

      8:25

    • 3.

      Algorithme de partition de tableaux

      9:31

    • 4.

      Programme Python de partition de tableaux

      5:21

    • 5.

      Algorithme de recherche binaire

      12:25

    • 6.

      Programme Python de recherche binaire

      7:05

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

18

apprenants

--

projet

À propos de ce cours

Tous les programmeurs en herbe - ce cours vous fera découvrir le travail intérieur de certains des algorithmes les plus basiques. Développer un algorithme à partir de zéro révèle un grand nombre de détails internes qui ne sont pas évidents. La programmation consiste beaucoup à gérer ces détails. Ce cours traite des algorithmes simples et bien connus qui fonctionnent sur un éventail de chiffres. L'objectif est de visualiser clairement ce qui se passe sous la capture pour ces algorithmes les plus basiques. Savoir ces détails est essentiel pour devenir un programmateur confiant.

À propos de moi : je suis Suman Datta, consultante en finances quantitatives avec plus de 20 ans d'expérience en codage pratique et en conception de logiciels dans des domaines tels que la modélisation quantitative, la programmation statistique et la science des données.

Rencontrez votre enseignant·e

Teacher Profile Image

Suman Datta

just a coder

Enseignant·e
Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

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.