Rumah > Artikel > pembangunan bahagian belakang > Kaedah pelaksanaan algoritma isihan gelembung dalam PHP
Cara melaksanakan algoritma isihan gelembung dalam PHP
Isih gelembung ialah algoritma isihan yang mudah tetapi tidak cekap yang boleh dilaksanakan dengan mudah dalam PHP. Prinsip pengisihan gelembung adalah untuk membandingkan saiz elemen bersebelahan dalam tatasusunan Jika elemen sebelumnya lebih besar daripada elemen seterusnya, kedudukan mereka ditukar Dengan cara ini, selepas satu pusingan perbandingan, elemen terbesar (atau terkecil). akan tenggelam ke hujung tatasusunan. Kemudian lakukan operasi yang sama pada elemen yang tinggal sehingga keseluruhan tatasusunan diisih. Berikut ialah contoh pelaksanaan PHP bagi algoritma isihan gelembung:
function bubbleSort($array) { $len = count($array); for ($i = 0; $i < $len - 1; $i++) { for ($j = 0; $j < $len - 1 - $i; $j++) { if ($array[$j] > $array[$j + 1]) { $temp = $array[$j]; $array[$j] = $array[$j + 1]; $array[$j + 1] = $temp; } } } return $array; } // 测试 $data = [3, 9, 2, 8, 5, 1, 4, 7, 6]; $result = bubbleSort($data); print_r($result);
Dalam contoh ini, kami mentakrifkan fungsi bernama bubbleSort
untuk melaksanakan algoritma isihan gelembung. Fungsi ini menerima tatasusunan untuk diisih sebagai parameter dan mengembalikan tatasusunan yang diisih. Dalam fungsi, kita mula-mula mendapatkan panjang tatasusunan $len
melalui fungsi count
, dan kemudian gunakan gelung for
bersarang untuk melakukan perbandingan dan operasi pertukaran. bubbleSort
的函数来实现冒泡排序算法。该函数接受一个待排序的数组作为参数,并返回排序完成的数组。在函数中,我们首先通过count
函数获取数组的长度$len
,然后使用嵌套的for
循环进行比较和交换操作。
外层的for
循环控制排序的轮数,每一轮都会将当前未排序部分的最大元素移到最后。内层的for
循环用于比较相邻元素的大小,并根据需要进行交换。如果当前元素比下一个元素大,则交换它们的位置。
在上述的代码示例中,我们将一个无序数组$data
传递给bubbleSort
函数进行排序,并将排序后的结果打印输出。输出结果为Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => 9 )
for
dalam digunakan untuk membandingkan saiz elemen bersebelahan dan menukarnya mengikut keperluan. Jika elemen semasa lebih besar daripada elemen seterusnya, tukar kedudukan mereka. Dalam contoh kod di atas, kami menghantar tatasusunan tidak tertib $data
ke fungsi bubbleSort
untuk mengisih dan mencetak hasil yang diisih. Hasil keluaran ialah Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 [7] => 8 [8] => <p></p>Kerumitan masa algoritma isihan gelembung ialah O(n^2), dengan n ialah panjang tatasusunan. Ini bermakna apabila saiz tatasusunan besar, pengisihan gelembung akan menjadi kurang cekap dan tidak sesuai untuk memproses sejumlah besar data. Tetapi untuk tatasusunan berskala kecil, isihan gelembung ialah algoritma pengisihan yang mudah, mudah difahami dan mudah dilaksanakan. 🎜🎜Untuk meringkaskan, isihan gelembung ialah algoritma pengisihan yang intuitif dan mudah difahami sesuai untuk mengisih data kecil. Dalam PHP, kami boleh melaksanakan pengisihan gelembung melalui kod mudah dan menggunakannya pada projek sebenar. Sudah tentu, apabila berurusan dengan data berskala besar, kita mungkin perlu menggunakan algoritma pengisihan yang lebih cekap untuk meningkatkan prestasi. 🎜
Atas ialah kandungan terperinci Kaedah pelaksanaan algoritma isihan gelembung dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!