Maison > Java > javaDidacticiel > Introduction détaillée au tri des tableaux

Introduction détaillée au tri des tableaux

零下一度
Libérer: 2017-07-23 17:22:00
original
1269 Les gens l'ont consulté

Un aperçu

1. Boucle double couche

Trier Généralement implémenté par une boucle à double couche, la boucle externe contrôle le nombre de tours de boucle et la boucle interne implémente un tri unique. L'indice de la boucle externe va de 1 à arr.length-1, et le nombre d'itérations de la boucle interne diminue à mesure que le nombre d'itérations de la boucle externe augmente.

Deux méthodes de bouillonnement

1 Idée de base

Comparez adjacent Si le. deux éléments remplissent les conditions, ils échangeront leurs positions, de sorte que le plus grand élément sera déplacé vers l'arrière.

2. Implémentation de l'algorithme

public static int[] bubbleSort(int[] arr) {for (int i = 1; i < arr.length; i++) {for (int j = 0; j < arr.length - i; j++) {if (arr[j] > arr[j + 1]) {int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }return arr;
    }
Copier après la connexion

Trois tris directs

1. Idée de base

Filtrez la valeur maximale de la séquence non triée et placez-la à la fin de la séquence non triée. La boucle externe boucle une fois, échangeant la valeur maximale de la séquence non triée avec la position du dernier élément de la séquence non triée. Les positions des autres éléments restent inchangées. La clé est d'obtenir l'index de la valeur maximale. Le tri direct est plus rapide que le tri à bulles.

Point d'entrée de la boucle interne : supposons que le premier élément de la séquence non triée, c'est-à-dire l'élément d'index 0, est la valeur maximale, puis comparez-le avec les éléments restants pour obtenir l’indice de la valeur maximale.

2. Implémentation de l'algorithme

public static int[] directSort(int[] arr) {int len = arr.length;int index;for (int i = 1; i < len; i++) {
            index = 0;for (int j = 1; j <= len - i; j++) {if (arr[index] < arr[j]) {
                    index = j;
                }int temp = arr[len - i];
                arr[len - i] = arr[index];
                arr[index] = temp;
            }
        }return arr;
    }
Copier après la connexion

Tri à quatre inversions

1. Idée de base

Pour échanger les positions de deux éléments dont la somme d'index est arr.length-1, une seule boucle est nécessaire et le nombre de boucles est arr. longueur/2- 1.

2. Mise en œuvre de l'algorithme

public static int[] reverseSort(int[] arr) {for (int i = 0; i < arr.length / 2; i++) {int temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }return arr;
    }
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal