Maison  >  Article  >  Java  >  Comment implémenter l'algorithme de tri Hill en utilisant Java

Comment implémenter l'algorithme de tri Hill en utilisant Java

王林
王林original
2023-09-22 09:03:29866parcourir

Comment implémenter lalgorithme de tri Hill en utilisant Java

Comment implémenter l'algorithme de tri Hill à l'aide de Java

Le tri Hill est un algorithme de tri par insertion amélioré qui améliore l'efficacité en divisant un tableau en plusieurs sous-séquences. Cet article présentera comment implémenter l'algorithme de tri Hill à l'aide du langage Java et joindra des exemples de code spécifiques.

  1. Principe de l'algorithme
    L'idée de base du tri Hill est de diviser le tableau à trier en plusieurs sous-séquences, d'insérer un tri pour chaque sous-séquence, puis de réduire progressivement l'intervalle des sous-séquences et de continuer le tri jusqu'à ce que l'ensemble du tableau devienne un séquence.
  2. Implémentation Java
public class ShellSort {
    public static void shellSort(int[] arr) {
        int n = arr.length;

        // 初始化列数
        int gap = n / 2;

        while (gap > 0) {
            for (int i = gap; i < n; i++) {
                int temp = arr[i];
                int j = i;

                // 插入排序
                while (j >= gap && arr[j - gap] > temp) {
                    arr[j] = arr[j - gap];
                    j -= gap;
                }
                arr[j] = temp;
            }
            gap /= 2;
        }
    }

    public static void main(String[] args) {
        int[] arr = {9, 8, 3, 7, 5, 6, 4, 2, 1};

        System.out.println("排序前数组:");
        printArray(arr);

        shellSort(arr);

        System.out.println("排序后数组:");
        printArray(arr);
    }

    public static void printArray(int[] arr) {
        for (int i : arr) {
            System.out.print(i + " ");
        }
        System.out.println();
    }
}
  1. Test
    Dans le code ci-dessus, nous définissons d'abord une shellSort 方法,用于实现希尔排序。然后在 main 方法中,我们创建了一个待排序的数组 arr,并调用 shellSort 方法对其进行排序。最后,我们使用 printArray méthode pour imprimer le tableau trié.

Exécutez le code, la console affichera les résultats suivants :

排序前数组:
9 8 3 7 5 6 4 2 1 
排序后数组:
1 2 3 4 5 6 7 8 9

Grâce à l'exemple de code ci-dessus, nous pouvons clairement voir le processus d'exécution de l'algorithme de tri Hill. En réduisant continuellement l'intervalle entre les sous-séquences, l'efficacité du tri peut être améliorée, permettant ainsi au tableau d'être trié plus rapidement.

Résumé
Cet article présente comment implémenter l'algorithme de tri Hill à l'aide de Java. Le tri Hill améliore l'efficacité du tri en divisant le tableau en plusieurs sous-séquences et en effectuant un tri par insertion sur chaque sous-séquence. En comprenant les principes de l'algorithme de tri Hill et l'implémentation du code correspondant, nous pouvons mieux comprendre l'algorithme et être en mesure de l'appliquer de manière flexible à des problèmes de tri réels.

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:
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