Penjelasan terperinci tentang cara paling mudah untuk menulis isihan gelembung Java
Isih buih ialah algoritma pengisihan asas dengan membandingkan dan menukar elemen yang lebih besar (atau lebih kecil) akan diisih setelah Bergerak ke atas (atau ke bawah ) ke kedudukan yang betul. Artikel ini akan menerangkan secara terperinci cara paling mudah untuk menulis isihan gelembung dalam Java dan memberikan contoh kod khusus.
Idea asas isihan gelembung adalah untuk membandingkan elemen bersebelahan dari kiri ke kanan, dan jika elemen sebelumnya lebih besar (atau kurang) daripada elemen terakhir, tukar kedudukan mereka. Selepas pusingan perbandingan dan pertukaran sedemikian, elemen terbesar (atau terkecil) akan "bergelembung" ke paling kanan (atau paling kiri). Kemudian lakukan operasi yang sama pada elemen yang tinggal sehingga semua elemen diisih.
Berikut ialah cara paling mudah untuk menulis isihan gelembung dalam Java:
public class BubbleSort { public static void bubbleSort(int[] arr) { int len = arr.length; for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len - 1 - i; j++) { if (arr[j] > arr[j + 1]) { // 交换相邻元素的位置 int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } } public static void main(String[] args) { int[] arr = {5, 2, 8, 7, 1, 3, 9, 4, 6}; bubbleSort(arr); for (int num : arr) { System.out.print(num + " "); } } }
Dalam kod di atas, kami mula-mula mentakrifkan kaedah bubbleSort
, yang menerima tatasusunan integer sebagai parameter. Dalam kaedah ini, kami menggunakan dua gelung bersarang, gelung luar mengawal bilangan pusingan, dan gelung dalam mengawal perbandingan dan pertukaran dalam setiap pusingan. bubbleSort
方法,该方法接收一个整型数组作为参数。在该方法中,我们使用两个嵌套的for循环,外层循环控制轮数,内层循环控制每一轮中的比较和交换。
内层循环的初始值是len - 1 - i
,其中len
是数组的长度,i
是当前轮数。这是因为每一轮都会有一个元素移动到正确的位置,所以每一轮结束后,需要比较和交换的元素数量会减少。
在内层循环中,我们使用arr[j]
和arr[j + 1]
进行比较,如果arr[j]
大于arr[j + 1]
,则交换它们的位置。交换使用一个临时变量temp
来暂存arr[j]
的值,然后将arr[j + 1]
的值赋给arr[j]
,最后将temp
的值赋给arr[j + 1]
,完成交换。
在main
方法中,我们创建了一个包含9个整数的数组,并调用bubbleSort
len - 1 - i
, dengan len
ialah panjang tatasusunan dan i
ialah arus nombor bulat. Ini kerana setiap pusingan satu elemen dialihkan ke kedudukan yang betul, jadi selepas setiap pusingan terdapat lebih sedikit elemen untuk dibandingkan dan ditukar. Dalam gelung dalam, kami menggunakan arr[j]
dan arr[j + 1]
sebagai perbandingan, jika arr[j]
Greater daripada arr[j + 1]
, kedudukan mereka ditukar. Exchange menggunakan pembolehubah sementara temp
untuk menyimpan sementara nilai arr[j]
dan kemudian memberikan nilai arr[j + 1]
kepada arr[j], dan akhirnya tetapkan nilai temp
kepada arr[j + 1]
untuk melengkapkan pertukaran. Dalam kaedah utama
, kami mencipta tatasusunan yang mengandungi 9 integer dan memanggil kaedah bubbleSort
untuk mengisih tatasusunan. Akhir sekali, lelaran melalui tatasusunan melalui gelung for dan cetak setiap elemen. 🎜🎜Dengan menjalankan kod di atas, kita boleh mendapatkan output berikut: 🎜1 2 3 4 5 6 7 8 9🎜Di atas ialah cara paling mudah untuk menulis isihan gelembung dalam Java dan contoh kod khusus. Walaupun isihan gelembung adalah mudah, ia kurang cekap dalam aplikasi praktikal, jadi apabila memproses data berskala besar, anda harus mempertimbangkan untuk menggunakan algoritma isihan yang lebih cekap. 🎜
Atas ialah kandungan terperinci Analisis mendalam tentang pelaksanaan isihan gelembung paling ringkas di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!