Isih Buih dalam PHP ialah sejenis teknik/algoritma pengisihan mudah yang telah mengulangi langkah membandingkan setiap pasangan item bersebelahan dan juga menukarnya hanya jika ia berada dalam susunan yang salah kerana kami tidak diperlukan. Jenis ini juga dipanggil sebagai jenis tenggelam. Pelepasan elemen diulang sehingga tiada pertukaran diperlukan/diperlukan yang bermaksud kini senarai itu disusun. Teknik/algoritma pengisihan ini ialah isihan perbandingan dengan elemen/nombor yang lebih kecil yang dipanggil “buih/buih”.
IKLAN Kursus Popular dalam kategori ini PEMBANGUN PHP - Pengkhususan | 8 Siri Kursus | 3 Ujian Olok-olokMulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Isih gelembung berfungsi dengan menukar elemen bersebelahan berulang kali hanya jika unsur berada dalam susunan yang salah. Bubble Sort terlebih dahulu membandingkan elemen kedua dengan elemen pertama. Jika nilai elemen/indeks pertama lebih besar daripada nilai kedua maka pertukaran elemen akan dilakukan. Jika tidak pertukaran tidak akan dilakukan. Jika elemen pertama tatasusunan lebih besar daripada yang kedua maka pertukaran elemen akan dilakukan. Kini 1st elemen menjadi 2nd elemen dan begitu juga sebaliknya. Kini elemen yang ditukar kini sekali lagi dibandingkan dengan elemen ke-3rd dan seterusnya dan jika keadaan tercapai pertukaran akan dilakukan pada setiap masa sehingga ke penghujung elemen tatasusunan. Kini senario di atas berlaku dengan menjalankan gelung sebagai panjang tatasusunan/saiz tatasusunan yang dihantar ke dalam atur cara.
Terdapat pelbagai jenis pelaksanaan teknik Bubble Sort dalam bahasa Pengaturcaraan PHP. Satu adalah dengan menggunakan FOR LOOP, yang kedua adalah dengan menggunakan WHILE LOOP dan yang ketiga adalah dengan menggunakan DO WHILE LOOP. Dalam setiap program, logiknya akan sama tetapi sintaksnya akan berbeza sedikit.
Di bawah ialah contoh berbeza untuk melaksanakan Bubble Sort dalam PHP:
Dalam contoh di bawah, isihan gelembung dilaksanakan menggunakan kaedah FOR LOOP. Pada mulanya, saiz tatasusunan dikira dan disimpan dan kemudian memulakan gelung dan kemudian sekali lagi gelung bermula di dalam gelung. Kemudian nilai tatasusunan bersebelahan dibandingkan. Jika indeks tatasusunan nilai 0 lebih besar daripada indeks tatasusunan 1 nilai maka 1 nilai indeks akan disimpan dalam 0 nilai indeks. 0 nilai indeks akan disimpan pada 1 nilai indeks. Kemudian tatasusunan disebut dengan beberapa elemen di dalam fungsi itu sendiri dan sekali lagi gelung FOR dicipta untuk memanggil nilai tatasusunan yang diisih. Seperti ini, kita akan mendapat elemen yang diisih tatasusunan.
Kod:
<?php function bubbleSort1(&$arr1) { $n1 = sizeof($arr1); for($i1 = 0; $i1 < $n1; $i1++) { for ($j1 = 0; $j1 < $n1 - $i1 - 1; $j1++) { if ($arr1[$j1] > $arr1[$j1+1]) { $t1 = $arr1[$j1]; $arr1[$j1] = $arr1[$j1+1]; $arr1[$j1+1] = $t1; } } } } $arr1 = array(64, 32, 34, 26, 25, 43, 12, 68, 22, 90, 11); $len1 = sizeof($arr1); bubbleSort1($arr1); echo "Sorted array : \n"; for ($i1 = 0; $i1 < $len1; $i1++) echo $arr1[$i1]." "; ?>
Output:
Dalam contoh di bawah, pembolehubah tatasusunan dicipta dan disenaraikan pada elemen. Kemudian saiz dikira dan disimpan dalam $len12. Kemudian gelung dicipta pada mulanya untuk memaparkan elemen sebenar yang terdapat dalam tatasusunan dengan menggunakan panjang tatasusunan sebagai keadaan gelung. Kemudian pembolehubah dicipta untuk menyimpan elemen tatasusunan yang diisih dengan memanggil fungsi di dalam pembolehubah. Kemudian fungsi normal dicipta. Di dalam fungsi, WHILE LOOP digunakan untuk melaksanakan Bubble Sort dalam PHP dengan menukar elemen bersebelahan. Tetapi di sini hanya pertukaran akan dilakukan hanya jika elemen 2nd tatasusunan adalah kurang daripada elemen 1st.
Kod:
<?php $arr2 = array(7, 22, 33, 99, 6, 55, 11, 2, 3, 88, 4); echo "Original Array Elements :: "; echo "<br>"; $len12 = sizeof($arr2); for ($z1 = 0; $z1 < $len12; $z1++) echo $arr2[$z1]." "; echo "<hr>"; echo "<br>Sorted array with index values :: \n<br>"; $sortedArr2 = bubbleSort($arr2); var_dump($sortedArr2); echo "<hr>"; function bubbleSort(array $arr2) { $sorted2 = false; while (false === $sorted2) { $sorted2 = true; for ($i2 = 0; $i2 < count($arr2)-1; ++$i2) { $current2 = $arr2[$i2]; $next2 = $arr2[$i2+1]; if ($next2 < $current2) { $arr2[$i2] = $next2; $arr2[$i2+1] = $current2; $sorted2 = false; } } } return $arr2; } echo "<br> Sorted Array Elements List :: "; $len12 = sizeof($sortedArr2); for ($z1 = 0; $z1 < $len12; $z1++) echo $sortedArr2[$z1]." "; echo "<br>"; echo "<hr>"; ?>
Output:
Dalam program di bawah, fungsi dicipta, dan juga gelung DO WHILE dilaksanakan untuk melaksanakan teknik Isih Buih. Di sini pembolehubah dicipta dengan nilai palsu pada mulanya. Kemudian FOR LOOP dicipta untuk menjalankan elemen tatasusunan. Di dalam gelung, keadaan IF dibuat untuk menyemak sama ada tatasusunan1[0] lebih besar daripada nilai tatasusunan1[1]. Jika ya maka nilai indeks akan ditukar. Kemudian nilai yang ditukar disemak dalam keadaan sementara dan menjalankan gelung DO WHILE sekali lagi. Begitu juga, proses itu diteruskan dan mencetak elemen tatasusunan dalam cara yang diisih menggunakan teknik Isih Buih.
Kod:
<?php function bubble_Sort1($my_array1 ) { do { $swapped1 = false; for( $i1 = 0, $c1 = count( $my_array1 ) - 1; $i1 < $c1; $i1++ ) { if( $my_array1[$i1] > $my_array1[$i1 + 1] ) { list( $my_array1[$i1 + 1], $my_array1[$i1] ) = array( $my_array1[$i1], $my_array1[$i1 + 1] ); $swapped1 = true; } } } while( $swapped1 ); return $my_array1; } $test_array1 = array(3, 21, 0, -6, 2, 45, 5, 4, -1, 8, 4, 23, 1); echo "Original Array as mentioned in the Program :\n"; echo implode(', ',$test_array1 ); echo "<br>"; echo "\nSorted Array of the above list\n:"; echo implode(', ',bubble_Sort1($test_array1)). PHP_EOL; echo "<br>"; ?>
Output:
Saya harap anda mempelajari apa itu takrifan Bubble sort dalam PHP, Logik di sebalik Bubble sort dalam PHP dan Cara melaksanakan Bubble Sort dalam PHP menggunakan pelbagai kaedah.
Atas ialah kandungan terperinci Isih Buih dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!