Rumah  >  Artikel  >  Java  >  Bagaimana untuk melaksanakan algoritma pengisihan Hill menggunakan java

Bagaimana untuk melaksanakan algoritma pengisihan Hill menggunakan java

王林
王林asal
2023-09-22 09:03:29869semak imbas

Bagaimana untuk melaksanakan algoritma pengisihan Hill menggunakan java

Cara melaksanakan algoritma isihan Hill menggunakan Java

Isihan bukit ialah algoritma isihan sisipan yang dipertingkatkan yang meningkatkan kecekapan dengan membahagikan tatasusunan kepada berbilang jujukan. Artikel ini akan memperkenalkan cara melaksanakan algoritma pengisihan Hill menggunakan bahasa Java dan melampirkan contoh kod tertentu.

  1. Prinsip algoritma
    Idea asas pengisihan Hill adalah untuk membahagikan tatasusunan untuk diisih kepada beberapa jujukan, memasukkan isihan setiap jujukan, dan kemudian secara beransur-ansur mengurangkan selang jujukan, dan teruskan menyusun sehingga keseluruhan tatasusunan menjadi urutan.
  2. Pelaksanaan 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. Ujian
    Dalam kod di atas, kami mula-mula menentukan kaedah shellSort 方法,用于实现希尔排序。然后在 main 方法中,我们创建了一个待排序的数组 arr,并调用 shellSort 方法对其进行排序。最后,我们使用 printArray untuk mencetak tatasusunan yang diisih.

Jalankan kod, konsol akan mengeluarkan keputusan berikut:

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

Melalui contoh kod di atas, kita dapat melihat dengan jelas proses pelaksanaan algoritma pengisihan Hill. Dengan terus mengurangkan selang antara urutan, kecekapan pengisihan boleh dipertingkatkan, membolehkan tatasusunan diisih dengan lebih cepat.

Ringkasan
Artikel ini memperkenalkan cara melaksanakan algoritma pengisihan Hill menggunakan Java. Isih bukit meningkatkan kecekapan pengisihan dengan membahagikan tatasusunan kepada berbilang jujukan dan melaksanakan isihan sisipan pada setiap jujukan. Dengan memahami prinsip algoritma pengisihan Hill dan pelaksanaan kod yang sepadan, kami dapat memahami algoritma dengan lebih baik dan dapat menerapkannya secara fleksibel pada masalah pengisihan sebenar.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan algoritma pengisihan Hill menggunakan java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn