Maison développement back-end Tutoriel Python Apprendre et implémenter l'algorithme de tri par sélection en Python

Apprendre et implémenter l'algorithme de tri par sélection en Python

Feb 03, 2024 am 09:04 AM
原理 实现 选择排序 arrangement

Apprendre et implémenter lalgorithme de tri par sélection en Python

Comprendre le principe et la mise en œuvre du tri par sélection en Python

Selection Sort est un algorithme de tri simple et intuitif dont l'idée de base est de parcourir le tableau à chaque fois et de sélectionner le plus petit (ou le plus grand) dans la partie non triée. , échangez sa position avec le premier élément de la partie non triée, puis continuez à sélectionner l'élément le plus petit (ou le plus grand) de la partie non triée, et ainsi de suite, jusqu'à ce que l'ensemble du tableau soit trié. La complexité temporelle du tri par sélection est O(n^2) et il s'agit d'un algorithme de tri instable.

Ce qui suit utilise des exemples de code spécifiques pour illustrer le processus de mise en œuvre du tri par sélection.

def selection_sort(arr):
    n = len(arr)
    for i in range(n-1):
        min_idx = i
        for j in range(i+1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]
Copier après la connexion

Ce qui précède est le code d'implémentation de l'algorithme de tri par sélection. Nous expliquerons ensuite le principe et le processus de ce code étape par étape.

Tout d'abord, nous définissons une fonction selection_sort, qui reçoit un tableau arr à trier en paramètre.

Dans le corps de la fonction, nous obtenons d'abord la longueur n du tableau. Il s'agit d'itérer n-1 fois, car chaque itération mettra un plus petit élément dans la bonne position, donc le dernier élément n'a pas besoin d'être trié.

Ensuite, nous utilisons deux boucles for imbriquées pour effectuer le processus de tri de sélection. La boucle externe va de 0 à n-1, représentant la position de départ i de la pièce à trier.

La boucle intérieure va de i+1 à n, représentant l'élément j dans la partie à trier. Nous comparons j avec l'élément à la position de départ i. Si j est plus petit que l'élément à la position de départ i, min_idx est mis à jour en j, indiquant que j est l'index du plus petit élément trouvé jusqu'à présent.

Lorsque la boucle interne se terminera, nous échangerons la position du plus petit élément trouvé avec l'élément à la position de départ i, afin que l'itération en cours place le plus petit élément dans la bonne position.

Avec n-1 itérations, nous pouvons nous assurer que l'ensemble du tableau est trié par ordre croissant.

Ensuite, nous pouvons utiliser le code suivant pour tester l'effet du tri par sélection :

arr = [64, 25, 12, 22, 11]
selection_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
    print(arr[i], end=" ")
Copier après la connexion

Le résultat de sortie est : 11 12 22 25 64, ce qui signifie que le tableau a été trié par ordre croissant.

En utilisation réelle, le tri par sélection est moins efficace, nous préférons donc utiliser d'autres algorithmes de tri plus efficaces, comme le tri rapide ou le tri par fusion. Cependant, le tri par sélection est un algorithme de tri simple et facile à comprendre, qui aide les débutants à comprendre les principes et les idées de base des algorithmes de tri.

Pour résumer, le tri par sélection consiste à sélectionner à chaque fois l'élément le plus petit (ou le plus grand) de la partie non triée, à le placer à la fin de la partie triée et, à travers plusieurs itérations, enfin à atteindre l'objectif de commander l'ensemble du tableau. La maîtrise du principe et de la mise en œuvre du tri par sélection est d'une grande importance pour une compréhension approfondie des algorithmes de tri et l'amélioration des capacités de programmation.

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 de ce site Web
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

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelles sont les dix principales plateformes de trading de devises virtuelles? Quelles sont les dix principales plateformes de trading de devises virtuelles? Feb 20, 2025 pm 02:15 PM

Avec la popularité des crypto-monnaies, des plateformes de trading de devises virtuelles ont émergé. Les dix principales plateformes de trading de devises virtuelles au monde sont classées comme suit selon le volume des transactions et la part de marché: Binance, Coinbase, FTX, Kucoin, Crypto.com, Kraken, Huobi, Gate.io, Bitfinex, Gemini. Ces plateformes offrent un large éventail de services, allant d'un large éventail de choix de crypto-monnaie à la négociation des dérivés, adapté aux commerçants de niveaux différents.

Comment ajuster l'échange ouvert en sésame en chinois Comment ajuster l'échange ouvert en sésame en chinois Mar 04, 2025 pm 11:51 PM

Comment ajuster l'échange ouvert en sésame en chinois? Ce didacticiel couvre des étapes détaillées sur les ordinateurs et les téléphones mobiles Android, de la préparation préliminaire aux processus opérationnels, puis à la résolution de problèmes communs, vous aidant à changer facilement l'interface d'échange Open Sesame aux chinois et à démarrer rapidement avec la plate-forme de trading.

Dois-je utiliser Flexbox au centre de l'image bootstrap? Dois-je utiliser Flexbox au centre de l'image bootstrap? Apr 07, 2025 am 09:06 AM

Il existe de nombreuses façons de centrer des photos de bootstrap, et vous n'avez pas à utiliser Flexbox. Si vous avez seulement besoin de centrer horizontalement, la classe de cent texte est suffisante; Si vous devez centrer verticalement ou plusieurs éléments, Flexbox ou Grid convient plus. Flexbox est moins compatible et peut augmenter la complexité, tandis que Grid est plus puissant et a un coût d'enseignement supérieur. Lorsque vous choisissez une méthode, vous devez peser les avantages et les inconvénients et choisir la méthode la plus appropriée en fonction de vos besoins et préférences.

Top 10 des plates-formes de trading de crypto-monnaie, les dix principales applications de plate-forme de trading de devises recommandées Top 10 des plates-formes de trading de crypto-monnaie, les dix principales applications de plate-forme de trading de devises recommandées Mar 17, 2025 pm 06:03 PM

Les dix principales plates-formes de trading de crypto-monnaie comprennent: 1. Okx, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6. Coinbase, 7. Kucoin, 8. Crypto.com, 9. BitFinex, 10. Gemini. La sécurité, la liquidité, les frais de traitement, la sélection des devises, l'interface utilisateur et le support client doivent être pris en compte lors du choix d'une plate-forme.

Comment calculer C-SUBScript 3 Indice 5 C-SUBScript 3 Indice Indice 5 Tutoriel d'algorithme Comment calculer C-SUBScript 3 Indice 5 C-SUBScript 3 Indice Indice 5 Tutoriel d'algorithme Apr 03, 2025 pm 10:33 PM

Le calcul de C35 est essentiellement des mathématiques combinatoires, représentant le nombre de combinaisons sélectionnées parmi 3 des 5 éléments. La formule de calcul est C53 = 5! / (3! * 2!), Qui peut être directement calculé par des boucles pour améliorer l'efficacité et éviter le débordement. De plus, la compréhension de la nature des combinaisons et la maîtrise des méthodes de calcul efficaces est cruciale pour résoudre de nombreux problèmes dans les domaines des statistiques de probabilité, de la cryptographie, de la conception d'algorithmes, etc.

Top 10 des plates-formes de trading de devises virtuelles 2025 Applications de trading de crypto-monnaie classée top dix Top 10 des plates-formes de trading de devises virtuelles 2025 Applications de trading de crypto-monnaie classée top dix Mar 17, 2025 pm 05:54 PM

Top dix plates-formes de trading de devises virtuelles 2025: 1. Okx, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6. Coinbase, 7. Kucoin, 8. Crypto.com, 9. BitFinex, 10. Gemini. La sécurité, la liquidité, les frais de traitement, la sélection des devises, l'interface utilisateur et le support client doivent être pris en compte lors du choix d'une plate-forme.

Quelles sont les plates-formes de monnaie numérique sûres et fiables? Quelles sont les plates-formes de monnaie numérique sûres et fiables? Mar 17, 2025 pm 05:42 PM

Une plate-forme de monnaie numérique sûre et fiable: 1. Okx, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6. Coinbase, 7. Kucoin, 8. Crypto.com, 9. Bitfinex, 10. Gemini. La sécurité, la liquidité, les frais de traitement, la sélection des devises, l'interface utilisateur et le support client doivent être pris en compte lors du choix d'une plate-forme.

Applications de logiciels de monnaie virtuels sûrs recommandés Top 10 des applications de trading de devises numériques classement 2025 Applications de logiciels de monnaie virtuels sûrs recommandés Top 10 des applications de trading de devises numériques classement 2025 Mar 17, 2025 pm 05:48 PM

Recommandés Applications logicielles de monnaie virtuelle recommandées: 1. Okx, 2. Binance, 3. Gate.io, 4. Kraken, 5. Huobi, 6. Coinbase, 7. Kucoin, 8. Crypto.com, 9. Bitfinex, 10. Gemini. La sécurité, la liquidité, les frais de traitement, la sélection des devises, l'interface utilisateur et le support client doivent être pris en compte lors du choix d'une plate-forme.

See all articles