Algorithmes de tri - Tri à bulles et Tri par sélection

Continuez à créer, accélérez la croissance ! C'est le premier jour de ma participation au "Nuggets Daily New Plan · June Update Challenge", cliquez pour voir les détails de l'événement

Algorithme de tri

1. Introduction de base

L'algorithme de tri est relativement basique, mais il est conçu avec de nombreuses idées informatiques, comme suit :

  1. Stratégies de comparaison et de non-comparaison
  2. Implémentation de l'itération et de la récursivité
  3. l'idée de diviser pour régner
  4. Analyse de la complexité du meilleur, du pire et du temps de cas moyen
  5. algorithme aléatoire

2. Classification des algorithmes de tri

Classement des algorithmes

1.jpg

Résumé de l'algorithme

2.jpg

3. Tri à bulles

(1) Introduction au tri à bulles

Le tri à bulles est un algorithme de tri simple. Il parcourt à plusieurs reprises la séquence à trier, en comparant deux éléments à la fois et en les échangeant s'ils ne sont pas dans le bon ordre. Le travail de visite de la séquence est répété jusqu'à ce qu'il n'y ait plus besoin d'échanges, c'est-à-dire que la séquence a été triée. Le nom de cet algorithme vient du fait que les plus petits éléments sont lentement "flottés" vers le haut de la séquence par permutation.

(2) Le principe du tri à bulles :

  1. Si la relation de taille d'élément est incorrecte, échangez les deux nombres (a > b dans ce cas),

  2. comparer une paire d'éléments adjacents (a, b),

  3. Répétez les étapes 1 et 2 jusqu'à ce que nous atteignions la fin du tableau (la dernière paire est le (N-2) et (N-1)ème élément puisque notre tableau commence à zéro)

  4. De loin, l'élément le plus grand sera en dernière position. Ensuite, nous diminuons N de 1 et répétons l'étape 1 jusqu'à ce que N = 1.

(3) Démonstration cinématographique

3.jpg

(4) Démonstration de codes

public static void bubbleSort(int array[]) {
        int t = 0;
        for (int i = 0; i < array.length - 1; i++){
            for (int j = 0; j < array.length - 1 - i; j++){
                if (array[j] > array[j + 1]) {
                    t = array[j];
                    array[j] = array[j + 1];
                    array[j + 1] = t;
                }
            }
        }
    }
复制代码

4. Tri par sélection

(1) Introduction au tri par sélection

Le tri par sélection (Selection-sort) est un algorithme de tri simple et intuitif. Comment ça marche : trouvez d'abord l'élément le plus petit (le plus grand) dans la séquence non triée, stockez-le au début de la séquence triée, puis continuez à trouver le plus petit (le plus grand) élément parmi les éléments non triés restants, et placez-le dans la séquence triée Fin de . Et ainsi de suite jusqu'à ce que tous les éléments soient triés.

(2) Le principe du tri sélectif

  1. Trouver la position du plus petit élément X dans la plage [L...N-1] ,

  2. Echangez X avec le Lième terme,

  3. Augmentez la limite inférieure L de 1 et répétez l'étape 1 jusqu'à ce que L = N-2 .

(3) Démonstration graphique dynamique

4.jpg

(4) Démonstration de codes

public static void selectionSort(int[] array) {
        for (int i = 0; i < array.length; i++) {
            int index = i;
            for (int j = i; j < array.length; j++) {
                if (array[j] < array[index]) 
                    index = j; 
            }
            int temp = array[index];
            array[index] = array[i];
            array[i] = temp;
        }
    }
复制代码

Je suppose que tu aimes

Origine juejin.im/post/7101502080984023047
conseillé
Classement