Maison > Java > javaDidacticiel > le corps du texte

Une brève analyse de l'algorithme de tri Java Hill (Shell)

高洛峰
Libérer: 2017-01-17 13:20:00
original
1425 Les gens l'ont consulté

Prenez d'abord un entier d1 inférieur à n comme premier incrément et divisez tous les enregistrements du fichier en groupes d1. Tous les enregistrements dont la distance est un multiple de dl sont placés dans le même groupe. Effectuez d'abord un tri par insertion directe dans chaque groupe ; puis prenez le deuxième incrément d2Cette méthode est essentiellement une méthode d'insertion groupée.

Diagramme schématique :

浅析java 希尔排序(Shell)算法

Code source

package com.zc.manythread;
/**
 * 
 * @author 偶my耶
 *
 */
public class ShellSort {
    public static int count = 0;
    public static void shellSort(int[] data) {
        // 计算出最大的h值
        int h = 1;
        while (h <= data.length / 3) {
            h = h * 3 + 1;
        }
        while (h > 0) {
            for (int i = h; i < data.length; i += h) {
                if (data[i] < data[i - h]) {
                    int tmp = data[i];
                    int j = i - h;
                    while (j >= 0 && data[j] > tmp) {
                        data[j + h] = data[j];
                        j -= h;
                    }
                    data[j + h] = tmp;
                    print(data);
                }
            }
            // 计算出下一个h值
            h = (h - 1) / 3;
        }
    }
    public static void print(int[] data) {
        for (int i = 0; i < data.length; i++) {
            System.out.print(data[i] + "\t");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        int[] data = new int[] { 4, 3, 6, 2, 1, 9, 5, 8, 7 };
        print(data);
        shellSort(data);
        print(data);
    }
}
Copier après la connexion

Résultats d'exécution :

浅析java 希尔排序(Shell)算法

Le tri des shells est instable, sa surcharge spatiale est également O(1) et la surcharge temporelle est estimée entre O(N3/2)~O(N7/6)

Plus d'analyse de Java Pour les articles liés à l'algorithme de tri Hill (Shell), veuillez faire attention au site Web PHP 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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!