recherche

Sorting and Searching in Python

Imaginez que vous avez un morceau de papier dans votre main avec 1 000 noms répertoriés et que vous devez en trouver un, mais cette liste n'est pas par ordre alphabétique. Ce serait très frustrant, non? Bien qu'il fasse beaucoup de temps pour trier cette liste, cela facilite la recherche des noms. Donc, le trier des choses est notre désir naturel humain, et la recherche de listes triées est évidemment plus d'économie que la recherche de listes non ordonnées.

Dans le monde de l'ordinateur, la liste des recherches peut être très importante et même des ordinateurs rapides, les performances peuvent être affectées. Dans ce cas, un algorithme de tri et de recherche approprié serait la solution à de tels problèmes. Le tri est le processus de tri d'une liste de valeurs dans l'ordre, tandis que la recherche est le processus de recherche de la position des valeurs dans la liste.

Pour illustrer l'importance de cette question, permettez-moi de vous montrer ce que le grand informaticien américain Donald Knuth a dit:

Les fabricants d'ordinateurs dans les années 1960 ont estimé que, compte tenu de tous les clients, plus de 25% de leur temps d'exécution par ordinateur a été dépensé pour le tri. En fait, dans de nombreux cas d'installation, la tâche de tri représente plus de la moitié du temps de calcul. À partir de ces statistiques, nous pouvons conclure que (i) le tri a de nombreuses applications importantes, ou (ii) de nombreuses personnes trient quand elles ne devraient pas, ou (iii) des algorithmes de tri inefficaces ont été largement utilisés. —— "L'art de la programmation informatique" Volume 3: Trier et recherche, page 3

Dans ce tutoriel, je vais vous montrer comment implémenter l'algorithme de tri de sélection et l'algorithme de recherche linéaire.

Mais avant de commencer, si vous voulez juste trier et rechercher dans votre code Python, je vous montrerai la méthode intégrée.

Méthodes et fonctions de tri intégrées dans Python

Vous pouvez créer de nombreux algorithmes de tri à l'aide de Python. Il s'agit d'un bon exercice d'apprentissage, mais pour les applications de production, vous devez vous en tenir aux fonctions et méthodes stockées intégrées dans Python.

Python a une méthode list.sort() que vous pouvez utiliser pour trier la liste en place. L'algorithme de tri utilisé dans les coulisses de Python est appelé Timsort. Il s'agit d'un algorithme de tri hybride basé sur le tri des insert et le tri de fusion qui offre d'excellentes performances dans de nombreuses vies réelles. Voici un exemple de la façon d'utiliser ces deux fonctions et méthodes:

marks_a = [61, 74, 58, 49, 95, 88]
marks_b = [94, 85, 16, 47, 88, 59]

# [49, 58, 61, 74, 88, 95]
print(sorted(marks_a))

# None
print(marks_b.sort())

# [61, 74, 58, 49, 95, 88]
print(marks_a)

# [16, 47, 59, 85, 88, 94]
print(marks_b)

Vous pouvez remarquer certaines des situations du code ci-dessus. La fonction sorted() renvoie une nouvelle liste triée sans modifier la liste d'origine marks_a. Cependant, la liste originale reste la même. D'un autre côté, lorsque nous appelons la méthode marks_b sur sort(), il renvoie None.

Vous pouvez transmettre certains paramètres pour modifier le comportement de tri. Par exemple, transmettez une fonction au paramètre reverse, qui trie notre liste de mots par ordre alphabétique sans aucun paramètre. Dans le deuxième cas, nous utilisons sorted() pour inverser l'ordre des mots triés. reverse=True

Sélectionner l'algorithme de tri

Sélectionner le tri L'algorithme est basé sur la sélection continue de la valeur minimale ou maximale. Supposons que nous ayons une liste que nous voulons trier par ordre ascendant (petit à grand). Le plus petit élément sera au début de la liste et le plus grand élément sera à la fin de la liste.

Supposons que la liste originale ressemble à ceci:

| 7 | 5 | 3.5 | 4 | 3.1 |

La première chose que nous devons faire est de trouver la valeur

minimum dans la liste, dans ce cas . 3.1

Lorsque la valeur minimale est trouvée, échangez la valeur minimale avec le premier élément de la liste

. Autrement dit, échange avec . La liste ressemblera maintenant à ceci: 3.1 7

| 3.1 | 5 | 3.5 | 4 | 7 | Maintenant que nous déterminons la position correcte du premier élément de la liste, nous répétons les étapes ci-dessus (trouvons la valeur minimale) du deuxième élément

de la liste. Nous pouvons constater que la valeur minimale dans la liste (à partir du deuxième élément) est

. Nous allons donc maintenant échanger avec . La liste devient maintenant: 3.5 3.5 5

À ce stade, nous nous assurons que le premier élément et le deuxième élément sont dans leur position correcte. | 3.1 | 3.5 | 5 | 4 | 7 |

Maintenant, nous vérifions la valeur minimale dans le reste de la liste, c'est-à-dire en commençant par le troisième élément

. La valeur minimale dans le reste de la liste est

, avec laquelle nous échangeons maintenant

. Par conséquent, la liste devient: 5 4 5

Par conséquent, nous déterminons maintenant que les trois premiers éléments | 3.1 | 3.5 | 4 | 5 | 7 | sont dans la bonne position et que le processus se poursuit de cette manière.

Voyons comment implémenter l'algorithme de tri de sélection dans Python (basé sur Isai Damier):

Testons l'algorithme en ajoutant l'instruction suivante à la fin du script ci-dessus:

marks_a = [61, 74, 58, 49, 95, 88]
marks_b = [94, 85, 16, 47, 88, 59]

# [49, 58, 61, 74, 88, 95]
print(sorted(marks_a))

# None
print(marks_b.sort())

# [61, 74, 58, 49, 95, 88]
print(marks_a)

# [16, 47, 59, 85, 88, 94]
print(marks_b)
Dans ce cas, vous devriez obtenir la sortie suivante:

def selectionSort(aList):
    for i in range(len(aList)):
        least = i
        for k in range(i+1, len(aList)):
            if aList[k]  <p>
</p> Algorithme de recherche linéaire <p>
<code>[4.6, 4.7, 5.76, 7.3, 7.6, 25.3, 32.4, 43.5, 52.3, 55.3, 86.7]</code> </p> Recherche linéaire <h2 id="L-algorithme-est-un-algorithme-simple-dans-lequel-chaque-élément-de-la-liste-est-vérifié-à-partir-du-premier-élément-jusqu-à-ce-que-l-élément-souhaité-soit-trouvé-ou-que-la-fin-de-la-liste-soit-atteinte"> L'algorithme est un algorithme simple dans lequel chaque élément de la liste est vérifié (à partir du premier élément) jusqu'à ce que l'élément souhaité soit trouvé ou que la fin de la liste soit atteinte. </h2>
<p> L'algorithme de recherche linéaire est implémenté dans Python comme suit (basé sur Python School): <em>
</em>
</p> Testons le code. Entrez l'instruction suivante à la fin du script Python ci-dessus: <p>
</p>
Lorsque vous entrez <pre class="brush:php;toolbar:false">my_list = [5.76,4.7,25.3,4.6,32.4,55.3,52.3,7.6,7.3,86.7,43.5]
selectionSort(my_list)
print(my_list)
, assurez-vous qu'il se situe entre les citations simples ou doubles (c'est-à-dire

). Par exemple, si vous tapez

, vous devriez obtenir la sortie suivante:
def linearSearch(item,my_list):
    found = False
    position = 0
    while position 
<p> <code>input</code> <code>'pencil'</code>
<code>'pencil'</code> Et si vous entrez </p> comme entrée, vous obtiendrez la sortie suivante: <p></p><p> <code>Oops, your item seems not to be in the bag</code> </p>
<h2 id="Conclusion"> Conclusion </h2>
<p> Comme nous l'avons vu, Python se prouve à nouveau en tant que langage de programmation facile à programmer le concept d'algorithmes, tout comme nous traitons ici des algorithmes de tri et de recherche. </p>
<p> Il convient de noter qu'il existe d'autres types d'algorithmes de tri et de recherche. Si vous souhaitez approfondir ces algorithmes à l'aide de Python, vous pouvez vous référer au manuel de programmation orienté objet Python gratuit. </p>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
En quoi les tableaux Numpy diffèrent-ils des tableaux créés à l'aide du module de tableau?En quoi les tableaux Numpy diffèrent-ils des tableaux créés à l'aide du module de tableau?Apr 24, 2025 pm 03:53 PM

NumpyArraysarebetterFornumericalOperations andMulti-dimensionaldata, tandis que la réalisation de la réalisation

Comment l'utilisation des tableaux Numpy se compare-t-il à l'utilisation des tableaux de modules de tableau dans Python?Comment l'utilisation des tableaux Numpy se compare-t-il à l'utilisation des tableaux de modules de tableau dans Python?Apr 24, 2025 pm 03:49 PM

NumpyArraysareBetterForheAVYVumericalComputing, tandis que la réalisation de points contraints de réalisation.1) NumpyArraySoFerversATACTORATIONS ajusté pour les données

Comment le module CTYPES est-il lié aux tableaux dans Python?Comment le module CTYPES est-il lié aux tableaux dans Python?Apr 24, 2025 pm 03:45 PM

CTYPESALLOWSCREATINGAndMANIPulationc-styLearRaySInpython.1) UsectypeStOinterfaceWithClibraryForPerformance.2) Createc-stylearRaysFornumericalComptations.3) PassArrayStocfunction

Définissez 'Array' et 'List' dans le contexte de Python.Définissez 'Array' et 'List' dans le contexte de Python.Apr 24, 2025 pm 03:41 PM

Inpython, une "liste" isaversatile, mutablesencethatcanholdmixed datatypes, tandis que "tableau" est une cohérence homogène, une séquestre.

Une liste Python est-elle mutable ou immuable? Qu'en est-il d'un tableau Python?Une liste Python est-elle mutable ou immuable? Qu'en est-il d'un tableau Python?Apr 24, 2025 pm 03:37 PM

Pythonlistsandarraysarebothmutable.1) listsaxiblendupportheterogeneousdatabutarelessmemory-efficace.2) ArraysareMoreMory-EfficientForHomogeneousDatabutlessversatile, nécessitant un niveaumorypecodeusagetoavoiderrors.

Python vs C: Comprendre les principales différencesPython vs C: Comprendre les principales différencesApr 21, 2025 am 12:18 AM

Python et C ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1) Python convient au développement rapide et au traitement des données en raison de sa syntaxe concise et de son typage dynamique. 2) C convient à des performances élevées et à une programmation système en raison de son typage statique et de sa gestion de la mémoire manuelle.

Python vs C: Quelle langue choisir pour votre projet?Python vs C: Quelle langue choisir pour votre projet?Apr 21, 2025 am 12:17 AM

Le choix de Python ou C dépend des exigences du projet: 1) Si vous avez besoin de développement rapide, de traitement des données et de conception du prototype, choisissez Python; 2) Si vous avez besoin de performances élevées, de faible latence et de contrôle matériel, choisissez C.

Atteindre vos objectifs python: la puissance de 2 heures par jourAtteindre vos objectifs python: la puissance de 2 heures par jourApr 20, 2025 am 12:21 AM

En investissant 2 heures d'apprentissage Python chaque jour, vous pouvez améliorer efficacement vos compétences en programmation. 1. Apprenez de nouvelles connaissances: lire des documents ou regarder des tutoriels. 2. Pratique: Écrivez du code et complétez les exercices. 3. Revue: consolider le contenu que vous avez appris. 4. Pratique du projet: Appliquez ce que vous avez appris dans les projets réels. Un tel plan d'apprentissage structuré peut vous aider à maîtriser systématiquement Python et à atteindre des objectifs de carrière.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Listes Sec

Listes Sec

SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.