Rumah > Java > javaTutorial > teks badan

Bagaimana untuk menulis kod untuk melaksanakan jenis gelembung dalam Java

WBOY
Lepaskan: 2023-05-03 16:43:06
ke hadapan
656 orang telah melayarinya

Bagaimana untuk menulis kod untuk melaksanakan jenis gelembung dalam Java


Prinsip isihan gelembung

  1. Bandingkan dua elemen bersebelahan. Jika yang pertama lebih besar daripada yang kedua, tukar kedudukan mereka (dalam tertib menaik, begitu juga sebaliknya dalam tertib menurun).

  2. Bandingkan setiap pasangan elemen bersebelahan dalam urutan dari awal hingga akhir senarai. Dengan cara ini, elemen dengan nilai terbesar "gelembung" ke penghujung senarai melalui pertukaran, melengkapkan pusingan pertama "gelembung".

  3. Ulang langkah sebelumnya dan teruskan membandingkan elemen bersebelahan dari permulaan senarai. Elemen yang telah "berbuih" tidak perlu dibandingkan (anda boleh membandingkannya sehingga akhir. Elemen yang telah "berbuih" ke belakang tidak perlu ditukar walaupun ia dibandingkan. Tidak membandingkan boleh mengurangkan langkah).

  4. Teruskan membuat perbandingan bermula dari senarai, dan satu elemen akan "bergelembung" dengan jayanya dalam setiap pusingan perbandingan. Bilangan elemen yang perlu dibandingkan dalam setiap pusingan akan berkurangan sehingga hanya tinggal satu elemen sahaja yang tidak "bergelembung" (tiada pasangan elemen yang perlu dibandingkan), kemudian penyusunan senarai selesai.

Proses isihan buih

Ambil tatasusunan satu dimensi ini sebagai contoh:

int[] array = new int[]{55,33,22,66,11};
Salin selepas log masuk
Pusingan pertama buih
  1. Rajah ① ialah carta lajur bagi susunan permulaan data dalam pusingan pertama "gelembung". ditukar, jika tidak, tiada pertukaran akan berlaku."

  2. tatasusunan[0]=55 >

  3. tatasusunan[1]=55 > tatasusunan[2]=22, jika syarat dipenuhi, tukarkan susunan kedudukan elemen, seperti yang ditunjukkan dalam Rajah ③;

    tatasusunan[2] =55 < tatasusunan[3]=66, syarat tidak dipenuhi, susunan kedudukan elemen tidak ditukar, seperti yang ditunjukkan dalam Rajah ③>
  4. tatasusunan[3]=66 > tatasusunan[ 4]=11, jika syarat dipenuhi, susunan kedudukan elemen ditukar, seperti yang ditunjukkan dalam Rajah ④;

    Pusingan pertama demonstrasi "gelembung" adalah seperti yang ditunjukkan dalam rajah:

  5. Pusingan kedua menggelegak

Rajah ④ menunjukkan carta lajur pesanan permulaan data dalam pusingan kedua "gelembung";
Bagaimana untuk menulis kod untuk melaksanakan jenis gelembung dalam Java

tatasusunan[0]33 > susunan kedudukan unsur-unsur, seperti yang ditunjukkan dalam Rajah ⑤; elemen tidak ditukar, seperti yang ditunjukkan dalam Rajah ⑤;
  1. tatasusunan[2]55 > ditukar, seperti yang ditunjukkan dalam Rajah ⑥;

  2. Pusingan kedua demonstrasi "gelembung" adalah seperti yang ditunjukkan dalam rajah:

  3. Pusingan ketiga daripada menggelegak

  4. Rajah ⑥ menunjukkan carta lajur jujukan permulaan data dalam pusingan ketiga "buih"

tatasusunan[0] =22 < tatasusunan[1]=33, syarat tidak dipenuhi, dan susunan kedudukan unsur-unsur tidak ditukar, seperti yang ditunjukkan dalam Rajah ⑥; =33 > tatasusunan[2]=11, jika syarat dipenuhi, tukarkan susunan kedudukan elemen, seperti yang ditunjukkan dalam Rajah ⑦; demonstrasi adalah seperti berikut Seperti yang ditunjukkan dalam rajah:
Bagaimana untuk menulis kod untuk melaksanakan jenis gelembung dalam Java

Pusingan keempat menggelegak
  1. Rajah ⑦ menunjukkan lajur tertib permulaan data dalam pusingan keempat rajah bentuk "gelembung";

  2. tatasusunan[0]=22 > " dan "11", seperti yang ditunjukkan dalam Rajah ⑧ ;

  3. Pusingan keempat demonstrasi "gelembung" ditunjukkan dalam rajah:

Pada ketika ini, proses pengisihan buih tatasusunan selesai La!
Bagaimana untuk menulis kod untuk melaksanakan jenis gelembung dalam Java

Pelaksanaan kod khusus
Kelas BubbleSort:
    public class BubbleSort {
        public static void sort(int array[]) {
            //i表示第几轮“冒泡”,j 表示“走访”到的元素索引。
            // 每一轮“冒泡”中,j 需要从列表开头“走访”到 array.length - 1 的位置。
            for (int i = 0; i < array.length - 1; i++) {
                for (int j = 0; j < array.length - 1 - i; j++) {
                    if (array[j] > array[j + 1]) {
                        int temp = array[j];
                        array[j] = array[j + 1];
                        array[j + 1] = temp;
                    }
                }
            }
        }}
    Salin selepas log masuk
  1. TestMain class

    import java.util.Arrays;public class TestMain {
        public static void main(String[] args) {
            int[] array = new int[]{55, 33, 22, 66, 11};
            //输出排序前的array数组
            System.out.print("排序前:");
            System.out.println(Arrays.toString(array));
            //调用BubbleSort类中的sort方法对array数组进行排序
            BubbleSort.sort(array);
            //输出冒泡排序后的array数组
            System.out.print("排序后:");
            System.out.println(Arrays.toString(array));
        }}
    Salin selepas log masuk
    Keputusan yang dijalankan adalah seperti berikut: rreee

    Atas ialah kandungan terperinci Bagaimana untuk menulis kod untuk melaksanakan jenis gelembung dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!