Rumah  >  Artikel  >  Java  >  Tulis algoritma isihan pantas dalam Java untuk mengisih data

Tulis algoritma isihan pantas dalam Java untuk mengisih data

WBOY
WBOYasal
2024-02-25 19:48:07641semak imbas

Tulis algoritma isihan pantas dalam Java untuk mengisih data

Cara memanggil fungsi isihan pantas untuk mengisih data dalam Java memerlukan contoh kod khusus

Isih cepat ialah algoritma pengisihan yang biasa digunakan yang mempunyai kecekapan tinggi semasa memproses data berskala besar. Memanggil fungsi isihan pantas dalam Java untuk mengisih data boleh dilaksanakan secara rekursif. Perkara berikut akan memperkenalkan anda secara terperinci cara melakukan pengisihan pantas dalam Java dan memberikan contoh kod khusus.

Pertama, kita perlu memahami prinsip pengisihan pantas. Idea asas pengisihan cepat adalah untuk memilih elemen penanda aras dan membahagikan urutan untuk diisih kepada dua bahagian melalui satu laluan pengisihan Elemen dalam satu bahagian adalah lebih kecil daripada elemen penanda aras, dan elemen di bahagian yang lain adalah lebih besar daripada elemen penanda aras. Kedua-dua bahagian itu kemudiannya diisih secara rekursif sehingga keseluruhan urutan diisih.

Berikut ialah contoh kod isihan pantas dalam Java:

public class QuickSort {
    public void quickSort(int[] arr, int low, int high) {
        if (low < high) {
            int pi = partition(arr, low, high);
            quickSort(arr, low, pi - 1);
            quickSort(arr, pi + 1, high);
        }
    }

    public int partition(int[] arr, int low, int high) {
        int pivot = arr[high];
        int i = (low - 1);
        for (int j = low; j < high; j++) {
            if (arr[j] < pivot) {
                i++;

                int temp = arr[i];
                arr[i] = arr[j];
                arr[j] = temp;
            }
        }

        int temp = arr[i + 1];
        arr[i + 1] = arr[high];
        arr[high] = temp;

        return i + 1;
    }

    public static void main(String[] args) {
        int[] arr = {10, 7, 8, 9, 1, 5};
        int n = arr.length;

        QuickSort sorter = new QuickSort();
        sorter.quickSort(arr, 0, n - 1);

        System.out.println("排好序的数组:");
        for (int i : arr) {
            System.out.print(i + " ");
        }
    }
}

Dalam contoh di atas, kami mula-mula mentakrifkan kelas QuickSort dan mengisytiharkan kaedah quickSort dan partition di dalamnya. Kaedah isihan pantas quickSort menggunakan kaedah rekursif untuk membahagi tatasusunan kepada dua bahagian dengan memanggil kaedah sekatan, dan kemudian terus memanggil kaedah quickSort secara rekursif pada dua bahagian sehingga keseluruhan tatasusunan diisih. Kaedah partition digunakan untuk menentukan elemen asas dan meletakkan elemen yang lebih kecil daripada elemen asas di sebelah kiri elemen asas, dan elemen yang lebih besar daripada elemen asas di sebelah kanan elemen asas.

Dalam kaedah utama, kami mencipta arr tatasusunan yang mengandungi beberapa elemen yang tidak diisih dan menyerahkannya kepada kaedah quickSort untuk mengisih. Akhir sekali, kami menggunakan gelung untuk mencetak tatasusunan yang diisih.

Melalui contoh kod di atas, kita boleh memanggil fungsi isihan pantas dalam Java untuk mengisih data. Anda boleh mengubah suai dan melaraskan contoh ini untuk melaksanakan fungsi pengisihan yang lebih kompleks berdasarkan keperluan sebenar anda. Harap artikel ini membantu anda!

Atas ialah kandungan terperinci Tulis algoritma isihan pantas dalam Java untuk mengisih data. 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