Trier un tableau en Java sans utiliser la méthode sort()

Haider Ali 12 octobre 2023
  1. Trier un tableau en Java sans utiliser la méthode sort() - Tri à bulles
  2. Trier un tableau en Java sans utiliser la méthode sort() - Tri par sélection
  3. Trier un tableau en Java sans utiliser la méthode sort() - Tri par insertion
Trier un tableau en Java sans utiliser la méthode sort()

Ce guide va nous apprendre à trier un tableau en Java sans utiliser la méthode sort(). Il existe généralement trois façons de trier un tableau. Ces trois algorithmes sont assez efficaces pour trier n’importe quel tableau. Apprenons-en plus sur ces algorithmes.

Trier un tableau en Java sans utiliser la méthode sort() - Tri à bulles

Comprenons le concept de tri à bulles, qui est l’algorithme de tri le plus simple. Fondamentalement, dans cet algorithme, vous échangez à plusieurs reprises les éléments adjacents dans le tableau. S’ils sont dans le mauvais ordre, l’algorithme permutera les deux éléments. Jetez un œil à la présentation.

Trier un tableau en Java sans utiliser la méthode sort() - Tri à bulles

Si vous regardez l’image fournie ci-dessus, vous pouvez voir l’échange des deux éléments adjacents. Au final, nous avons le tableau trié. En cas de confusion, jetez un œil au code de cet algorithme de tri à bulles.

public class Main {
  public static void main(String[] args) {
    int[] arr = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
    // Example Array To sort...
    for (int i = 0; i < arr.length; i++) { // Loop over java Array  outer Loop use
      for (int j = i + 1; j < arr.length; j++) { // Loop over java array
        int tmp = 0; // tempraory variable in order to compare.
        if (arr[i] > arr[j]) { // compare outer loop object with inner loop
          tmp = arr[i]; // if greater than swapping.
          arr[i] = arr[j]; // Swaping code here.
          arr[j] = tmp;
        }
      }
    }
    // After Sorting Printing The Value.............

    for (int i = 0; i < arr.length; i++) {
      System.out.println(arr[i]);
    }
  }
}

Production :

3 4 5 8 32 95 172 564 754 768 859 1500

La boucle externe sert uniquement à passer sur le tableau tandis que la boucle interne échange les éléments non ordonnés adjacents à chaque passage. A la fin de la dernière passe, nous nous retrouvons avec le tableau trié.

Trier un tableau en Java sans utiliser la méthode sort() - Tri par sélection

L’algorithme de tri par sélection fonctionne en recherchant l’élément minimum dans un tableau et en le plaçant au début dudit tableau. À chaque passage, nous trouvons le prochain plus petit élément et le plaçons ensuite. Finalement, nous obtenons un tableau avec deux sous-tableaux. Un sous-tableau est un tableau trié qui se trouve au début du tableau. L’autre sous-tableau n’est pas trié.

À chaque passage, nous nous déplaçons dans l’ordre croissant. Si nous devions d’abord trouver le plus grand élément, nous le déplacerions dans l’ordre décroissant. Jetez un œil à l’illustration ci-dessous.

Trier un tableau en Java sans utiliser la méthode sort() - Tri par sélection

Dans l’illustration ci-dessus, le mouvement est dans l’ordre décroissant, et nous trouvons d’abord les éléments les plus gros et les plaçons à la fin. La présentation montre le tableau divisé en deux sous-tableaux, comme expliqué ci-dessus.

public class Main {
  public static void main(String[] args) {
    int[] arr1 = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
    int small = -1; // at start there is no small  number....
    for (int i = 0; i < arr1.length; i++) {
      small = i;
      for (int j = i; j <= arr1.length - 1; j++) {
        if (arr1[j] < arr1[small]) {
          small = j;
        }
        // swap values
      }
      int temp = arr1[i];
      arr1[i] = arr1[small];
      arr1[small] = temp;
    }

    for (int i = 0; i < arr1.length; i++) {
      System.out.println(arr1[i]);
    }
  }
}

Dans l’exemple de code ci-dessus, la boucle externe fonctionne comme un passage sur le tableau. Les boucles internes échangent le plus petit élément avec l’élément de l’index actuel.

Trier un tableau en Java sans utiliser la méthode sort() - Tri par insertion

Le tri par insertion est un autre algorithme de tri simple que nous pouvons utiliser pour trier un tableau. Dans cet algorithme, le tableau donné est également divisé en deux sous-tableaux. Mais contrairement au tri par sélection, l’élément est choisi dans le sous-tableau non trié et est placé à sa position correcte. Jetez un oeil à l’explication de l’image ci-dessous.

Trier un tableau en Java sans utiliser la méthode sort() - Tri par insertion

Comme vous pouvez le voir, il ne s’agit pas d’échanger entre les éléments adjacents. Il s’agit simplement de trouver le plus petit élément et de le placer dans sa bonne position. Nous itérons à partir du 1er élément et nous nous dirigeons vers la fin. L’élément est comparé à son prédécesseur, puis à l’élément à côté jusqu’à ce qu’ils trouvent sa bonne place. Dans l’exemple fourni, vous pouvez voir que 2 est comparé quatre fois avant d’être placé à la bonne position. Voici l’exemple de code.

public class Main {
  public static void main(String[] args) { // Insertion Sort....
    int[] arr2 = new int[] {5, 4, 3, 8, 32, 768, 564, 95, 172, 1500, 859, 754};
    int number = arr2.length;
    for (int a = 1; a < number; a++) {
      int keyValue = arr2[a];
      int b = a - 1;
      while (b >= 0 && arr2[b] > keyValue) {
        arr2[b + 1] = arr2[b];
        b = b - 1;
      }
      arr2[b + 1] = keyValue;
    }
    // printing inserion sort............................
    for (int i = 0; i < arr2.length; i++) {
      System.out.println(arr2[i]);
    }
  }
}

Ce sont les trois méthodes que vous pouvez utiliser pour trier un tableau en Java sans utiliser la fonction de tri.

Auteur: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn

Article connexe - Java Sort

Article connexe - Java Array