Rumah  >  Artikel  >  Java  >  Isih gelembung Java: analisis beberapa kaedah pelaksanaan biasa

Isih gelembung Java: analisis beberapa kaedah pelaksanaan biasa

WBOY
WBOYasal
2024-01-09 15:29:25731semak imbas

Isih gelembung Java: analisis beberapa kaedah pelaksanaan biasa

Fahami isihan gelembung Java: beberapa kaedah pelaksanaan biasa, contoh kod khusus diperlukan

  1. Pengenalan
    Isihan buih ialah algoritma pengisihan yang mudah tetapi tidak cekap idea utamanya ialah untuk mengisih Elemen bersebelahan dibandingkan dan ditukar, dan melalui berbilang pusingan perbandingan dan operasi pertukaran, elemen terbesar (atau terkecil) dalam urutan dipindahkan secara beransur-ansur ke kedudukan terakhir (atau hadapan). Artikel ini akan memperkenalkan prinsip isihan gelembung dan beberapa kaedah pelaksanaan biasa, dengan contoh kod yang sepadan untuk membantu pembaca memahami dengan lebih baik algoritma isihan gelembung Java.
  2. Prinsip
    Idea penyisihan gelembung adalah sangat intuitif dan mudah Pseudokod berikut boleh digunakan untuk menerangkan prinsip asasnya:
冒泡排序(Bubble Sort)算法:
1. 从序列的第一个元素开始,对相邻的两个元素进行比较
2. 如果前一个元素大于后一个元素,则交换这两个元素的位置
3. 对序列中的所有相邻元素进行比较和交换操作,一轮比较后,最大(或最小)的元素将位于序列的末尾(或第一位)
4. 重复步骤1-3,进行多轮的比较和交换操作,直到整个序列有序
  1. Kaedah pelaksanaan
    Terdapat banyak cara untuk melaksanakan algoritma pengisihan gelembung diperkenalkan di bawah. Kaedah pelaksanaan biasa, dan contoh kod Java yang sepadan diberikan:

3.1 Isih gelembung biasa
Kaedah pelaksanaan ini ialah algoritma isihan gelembung yang paling asas, elemen terbesar (atau terkecil). beratur ke kedudukan yang betul. Berikut ialah contoh kod Java yang sepadan:

public class BubbleSort {
    public static void bubbleSort(int[] arr) {
        if (arr == null || arr.length <= 1) {
            return;
        }
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
}

3.2 Isih gelembung yang dioptimumkan
Semasa setiap pusingan perbandingan, jika tiada operasi pertukaran berlaku, ini bermakna urutan adalah teratur dan algoritma boleh tamat lebih awal. Berikut ialah contoh kod Java yang sepadan:

public class BubbleSort {
    public static void bubbleSort(int[] arr) {
        if (arr == null || arr.length <= 1) {
            return;
        }
        boolean isSorted = false;
        for (int i = 0; i < arr.length - 1 && !isSorted; i++) {
            isSorted = true;
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                    isSorted = false;
                }
            }
        }
    }
}

3.3 Isih gelembung yang dipertingkatkan
Semasa setiap pusingan perbandingan, elemen terbesar dan terkecil boleh ditemui pada masa yang sama dan diletakkan pada kedudukan yang betul. Berikut ialah contoh kod Java yang sepadan:

public class BubbleSort {
    public static void bubbleSort(int[] arr) {
        if (arr == null || arr.length <= 1) {
            return;
        }
        int left = 0;
        int right = arr.length - 1;
        while (left < right) {
            for (int i = left; i < right; i++) {
                if (arr[i] > arr[i + 1]) {
                    int temp = arr[i];
                    arr[i] = arr[i + 1];
                    arr[i + 1] = temp;
                }
            }
            right--;
            for (int j = right; j > left; j--) {
                if (arr[j] < arr[j - 1]) {
                    int temp = arr[j];
                    arr[j] = arr[j - 1];
                    arr[j - 1] = temp;
                }
            }
            left++;
        }
    }
}
  1. Ringkasan
    Isihan buih ialah algoritma pengisihan yang mudah tetapi tidak cekap Idea terasnya ialah untuk mengisih elemen terbesar (atau terkecil) melalui beberapa pusingan perbandingan dan operasi pertukaran secara beransur-ansur akhir (atau pertama) urutan itu. Artikel ini memperkenalkan prinsip pengisihan gelembung dan beberapa kaedah pelaksanaan biasa, dan memberikan contoh kod Java yang sepadan. Saya berharap pembaca dapat lebih memahami proses pelaksanaan dan kaedah pengoptimuman algoritma isihan gelembung Java dengan membaca artikel ini.

Atas ialah kandungan terperinci Isih gelembung Java: analisis beberapa kaedah pelaksanaan biasa. 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