Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan algoritma isihan pemilihan dengan PHP
Cara melaksanakan algoritma isihan pemilihan dengan PHP
Isihan pilihan ialah algoritma pengisihan yang mudah dan intuitif ialah memilih elemen terkecil (atau terbesar) daripada elemen data untuk diisih dalam setiap pas dan menyimpannya dalam hasil. Kedudukan permulaan jujukan sehingga semua elemen data yang hendak diisih disusun. Di bawah ini kami akan melaksanakan algoritma isihan pemilihan melalui kod PHP dan menerangkannya secara terperinci.
Mula-mula, mari kita lihat langkah-langkah pelaksanaan algoritma isihan pemilihan:
Berikut ialah contoh kod menggunakan PHP untuk melaksanakan algoritma isihan pemilihan:
function selectionSort($arr) { $len = count($arr); for($i = 0; $i < $len - 1; $i++) { $minIndex = $i; for($j = $i + 1; $j < $len; $j++) { if($arr[$j] < $arr[$minIndex]) { $minIndex = $j; } } // Swap the minimum value with the current position $temp = $arr[$minIndex]; $arr[$minIndex] = $arr[$i]; $arr[$i] = $temp; } return $arr; } // Test the selectionSort function $testArray = [64, 25, 12, 22, 11]; echo "Before sorting: "; print_r($testArray); echo "After sorting: "; print_r(selectionSort($testArray));
Jalankan kod di atas, hasil keluarannya ialah:
Before sorting: Array ( [0] => 64 [1] => 25 [2] => 12 [3] => 22 [4] => 11 ) After sorting: Array ( [0] => 11 [1] => 12 [2] => 22 [3] => 25 [4] => 64 )
Ini adalah hasil pengisihan tatasusunan melalui algoritma isihan pemilihan. Seterusnya, mari jelaskan proses pelaksanaan khusus kod tersebut.
Dalam kod, kami mentakrifkan fungsi bernama selectionSort
, yang menerima tatasusunan untuk diisih sebagai parameter dan mengembalikan tatasusunan yang diisih. selectionSort
的函数,它接受一个待排序的数组作为参数,并返回排序后的数组。
首先,我们使用count
函数获取到数组的长度,并将其赋值给变量$len
。然后,我们使用两个嵌套的for
循环来遍历整个数组。
在外部的for
循环中,我们定义了一个变量$minIndex
用来保存当前最小值的索引,默认为当前的循环变量$i
。在内部的for
循环中,我们通过比较当前元素和最小值的大小来更新最小值的索引。
当内部的for
循环结束后,我们将当前最小值与当前的位置进行交换。通过使用一个临时变量$temp
count
untuk mendapatkan panjang tatasusunan dan menetapkannya kepada pembolehubah $len
. Kami kemudiannya menggunakan dua gelung for
bersarang untuk mengulangi keseluruhan tatasusunan. Dalam gelung for
luar, kami mentakrifkan pembolehubah $minIndex
untuk menyimpan indeks nilai minimum semasa, yang lalai kepada pembolehubah gelung semasa $i
. Dalam gelung for
dalaman, kami mengemas kini indeks nilai minimum dengan membandingkan saiz elemen semasa dan nilai minimum. Apabila gelung for
dalam tamat, kami menukar nilai minimum semasa dengan kedudukan semasa. Tukar nilai dua elemen dengan menggunakan pembolehubah sementara $temp
. Akhir sekali, kami mengembalikan tatasusunan yang diisih. 🎜🎜Kerumitan masa algoritma isihan pemilihan ialah O(n^2), dengan n ialah panjang tatasusunan yang hendak diisih. Ini kerana setiap traversal perlu mencari nilai minimum antara elemen yang tinggal dan melakukan operasi swap. Tanpa mengira keadaan awal tatasusunan, traversal n-1 mesti dilakukan. 🎜🎜Saya berharap melalui contoh kod dan penjelasan dalam artikel ini, anda boleh lebih memahami proses pelaksanaan algoritma isihan pemilihan dan dapat menggunakannya secara fleksibel dalam pembangunan sebenar. 🎜Atas ialah kandungan terperinci Bagaimana untuk melaksanakan algoritma isihan pemilihan dengan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!