Python de tri par insertion

Le tri par insertion Python fonctionne comme le tri des cartes de jeu. Pour utiliser le tri par insertion, vous créez deux listes : une liste triée et une liste non triée. Vous comparez chaque élément de la liste non triée jusqu’à ce que vous triiez cet élément. Le tri par insertion est un algorithme standard courant dans le langage Python.

Avez-vous déjà trié des cartes à jouer dans votre main ? C’est une façon de penser au concept de tri par insertion Python. Lorsque vous devez trier une liste avec seulement quelques éléments, le tri par insertion vous protège.

Les tris par insertion placent un élément non trié à sa place correcte après chaque itération dans un tableau.

Dans ce guide, nous allons parler de ce que sont les tris par insertion et de leur fonctionnement. Nous verrons comment implémenter un tri par insertion en Python, en référence à un exemple, afin que vous puissiez commencer avec cet algorithme de tri.

Qu’est-ce qu’un tri par insertion Python ?

Un tri par insertion divise une liste en deux sous-listes : triées et non triées. Il compare ensuite chaque élément de la liste non triée et continue de le faire jusqu’à ce que chaque élément de la liste soit trié.

Un algorithme de tri par insertion déplace un élément trié dans la sous-liste triée et le supprime de la sous-liste non triée. Les deux sous-listes font partie du même tableau, mais elles distinguent si un élément est trié.

Vous pouvez penser à des sortes d’insertion comme la façon dont vous trieriez un ensemble de cartes dans votre main dans un jeu de cartes.

Vous vous déplacez une par une dans la liste des cartes et les comparez entre elles. Les cartes triées apparaaîtraient dans la gauche de votre main. Les cartes non triées apparaaîtraient sur la droite jusqu’à ce que vous les triiez toutes.

81 % des participants ont déclaré qu’ils se sentaient plus confiants quant à leurs perspectives d’emploi en technologie après avoir assisté à un bootcamp. Soyez jumelé à un bootcamp aujourd’hui.

Le diplômé moyen d’un bootcamp a passé moins de six mois en transition de carrière, du démarrage d’un bootcamp à la recherche de son premier emploi.

Passons à business et trier un tableau à l’aide de l’algorithme de tri par insertion. Considérez le tableau non trié suivant :

9435

Dans un tri par insertion, le premier élément est considéré comme trié. Le deuxième élément est stocké dans sa propre variable . Nous appellerons cette variable current_number.

Trié current_number

9435

Nous devons comparer current_number avec l’élément à la première position dans le tableau. Si current_number est supérieur au premier élément, il reste à la même place. Sinon, current_number est déplacé vers le devant le premier élément.

4 n’est pas supérieur à 9, donc ces deux éléments s’intervertissent.

4935

Les deux premiers éléments de notre liste sont triés. Ensuite, nous changeons la valeur de current_number au troisième élément de la liste et le comparons avec tous les éléments sur sa gauche.

Notre current_number devient 3. Nous devons comparer :

  • Est-ce que 3 est supérieur à 9 ? Non, donc 3 est inséré avant 9.
  • Est-ce que 3 est supérieur à 4 ? Non, donc 3 est déplacé avant 4.

Notre liste ressemble maintenant à ceci :

Ce processus se répète jusqu’à ce que la liste soit triée. Notre liste n’a qu’un autre ensemble de comparaisons à effectuer car elle ne contient que quatre valeurs. Dans l’itération suivante, 5 devient current_number.

  • Est-ce que 5 est supérieur à 9 ? Non, donc 5 coups avant 9.

être utilisé tPlus aucune comparaison n’est faite car 5 est le dernier nombre de notre liste triée. Après cette itération, notre tableau a été trié :

3459

C’est aussi simple que ça ! Dans notre tri par insertion, nous avons toujours conservé les valeurs triées à gauche de la liste. Les valeurs non triées apparaissaient à droite.

Pour chaque itération de la liste, nous avons comparé current_number à tous les éléments non triés. Ce processus s’est répété jusqu’à ce que notre liste soit triée.

Comment écrire un tri par insertion en Python

Tout va bien en parcourant le tri par insertion sur papier. Il est maintenant temps d’entrer dans le vif du sujet et d’implémenter un tri par insertion en Python.

Écrire une fonction de tri

Nous allons commencer par écrire une fonction Python qui exécute notre tri :

Voyons comment cela fonctionne. Dans notre fonction sortNumbers, nous créons une boucle Python for qui parcourt chaque nombre de la liste. Ensuite, nous définissons le premier élément de la liste en tant que valeur triée en l’attribuant à la variable Python current_number.

Nous parcourons chaque élément dans le non trié < a href="/python-array/">Liste Python (chaque élément après current_number). Ensuite, nous comparons current_number avec chaque nombre à sa gauche. Après cela, nous définissons la valeur de current_number pour qu’elle soit égale à l’élément après lui dans la liste.

Ecrivez un programme principal

Nous avons‚Äôve devons écrire un programme principal qui exécute notre tri par insertion :

Notre code renvoie :

Notre liste a été triée par ordre croissant ! Félicitations pour être allé aussi loin.

"Career Karma est entré dans ma vie au moment o√π j’en avais le plus besoin et m’a rapidement aidé à participer à un bootcamp. Deux mois après avoir obtenu mon diplôme, j’ai trouvé l’emploi de mes rêves qui correspondait à mes valeurs et à mes objectifs. dans la vie !"

Venus, ingénieur logiciel chez Rockbot

Les tris par insertion peuvent trier les nombres par ordre décroissant. Pour ce faire, vous devez inverser le paramètre "inférieur à" (>) connectez-vous à la boucle while et faites-en un signe supérieur à :

while i >= 0 et current_number > toSort[i] :

Cette ligne de code, substituée dans notre exemple ci-dessus, triera les éléments d’une liste dans l’ordre inverse.

Quand devriez-vous utiliser un Tri par insertion ?

Les tris par insertion sont mieux utilisés lorsque les données d’une liste sont soit presque triées, soit lorsque vous triez une petite liste. Il existe des algorithmes plus efficaces que vous pouvez utiliser pour trier de grandes listes. Par exemple, un tri par fusion ou un tri rapide est plus rapide.

Les tris par insertion sont plus rapides que les tris à bulles.

Les tris par insertion sont utiles de toute façon. Savoir comment implémenter un tri par insertion vous donne un autre type de tri que vous pouvez utiliser.

Les tris par insertion sont moins compliqués que certains autres algorithmes de tri. Une fois que vous avez appris à écrire un tri par insertion, vous vous rapprochez des tris plus complexes comme les tris par fusion.

Tri par insertion Python : Analyse de complexité

Comme tous les algorithmes, il est important de prendre en considération les complexités les meilleures, les pires et les moyennes. Cela nous donnera un aperçu de l’efficacité de l’algorithme à faire son travail : dans ce cas , trier les listes.

Le pire des cas et les complexités moyennes sont O(n2). Cela signifie que l’algorithme augmentera de façon exponentielle plus lentement à mesure que vous ajouterez plus de valeurs à trier dans votre liste.

Le meilleur scénario est Au). Cela se produit lorsque nous exécutons l’algorithme sur une liste triée. L’algorithme vérifie que les éléments sont triés, puis arrête de s’exécuter.

Vous pouvez en savoir plus sur la façon dont nous représentons la complexité de l’algorithme dans notre série en deux parties sur Big O Notation.

Conclusion

Les tris par insertion sont comme trier une liste de cartes dans votre main dans un jeu de cartes. Vous conservez deux listes : une liste d’éléments triés et une liste d’éléments à trier. Ensuite, vous parcourez la liste des éléments non triés et mélangez leurs positions jusqu’à ce qu’ils soient tous triés.

Vous recherchez plus de ressources du langage de programmation Python ? Consultez notre guide complet pour apprendre Python. Vous trouverez les meilleurs conseils pour apprendre Python et une liste de cours en ligne, de livres et d’autres ressources.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method