Rumah >pembangunan bahagian belakang >masalah PHP >Mari kita bincangkan tentang kaedah pengisihan yang biasa digunakan (algoritma) dalam PHP
Sebagai bahasa pengaturcaraan yang penting, PHP sebenarnya berprestasi baik dalam banyak aspek. Dalam pemprosesan data, algoritma pengisihan adalah bahagian yang paling biasa dan penting. PHP menyediakan pelbagai algoritma pengisihan Berikut adalah pengenalan terperinci kepada kaedah pengisihan yang biasa digunakan dalam PHP.
Isih gelembung ialah salah satu algoritma pengisihan paling klasik dalam PHP. Algoritma ini melengkapkan pengisihan dengan merentasi dan membandingkan saiz dua elemen bersebelahan, dan kemudian menukar pesanan secara berterusan. Kaedah ini boleh dilaksanakan menggunakan gelung for atau gelung while.
<?php function bubble_sort($arr){ $length = count($arr); for($i=0;$i<$length;$i++){ for($j=$i+1;$j<$length;$j++){ if($arr[$i]>$arr[$j]){ $tmp = $arr[$i]; $arr[$i] = $arr[$j]; $arr[$j] = $tmp; } } } return $arr; }
Isih Pantas ialah salah satu algoritma pengisihan terpantas dalam PHP. Algoritma ini menggunakan kaedah rekursif untuk membahagi tatasusunan kepada dua bahagian, menggunakan satu elemen pangsi pada satu masa untuk membahagi tatasusunan kepada subarray yang lebih kecil dan lebih besar. Selepas itu, sub-tatasusunan terus diisih secara rekursif, dan akhirnya tatasusunan yang diisih diperolehi.
Terdapat banyak cara untuk melaksanakan isihan pantas dalam PHP, seperti kaedah rekursif dan bukan rekursif.
<?php function quick_sort($arr){ $length = count($arr); if($length<=1){ return $arr; } $left_array = array(); $right_array = array(); $middle = $arr[0]; for($i=1;$i<$length;$i++){ if($arr[$i]<$middle){ $left_array[] = $arr[$i]; }else{ $right_array[] = $arr[$i]; } } $left_array = quick_sort($left_array); $right_array = quick_sort($right_array); return array_merge($left_array, array($middle), $right_array); }
Isihan pilihan ialah satu lagi algoritma pengisihan klasik dalam PHP. Algoritma ini berfungsi dengan mencari elemen terkecil dalam tatasusunan dan meletakkannya di hadapan tatasusunan, kemudian melakukan perkara yang sama untuk elemen yang tinggal. Kerumitan masa algoritma ini ialah O(n²).
<?php function select_sort($arr){ $length = count($arr); for($i=0;$i<$length;$i++){ $min = $i; for($j=$i+1;$j<$length;$j++){ if($arr[$j]<$arr[$min]){ $min = $j; } } if($min!=$i){ $tmp = $arr[$i]; $arr[$i] = $arr[$min]; $arr[$min] = $tmp; } } return $arr; }
Isihan sisipan ialah satu lagi algoritma pengisihan mudah dalam PHP. Algoritma ini membandingkan saiz dan kedudukan elemen semasa dengan elemen yang diisih sebelum ini, dan kemudian memasukkan elemen ke kedudukan yang sesuai. Kerumitan masa algoritma ini ialah O(n²).
<?php function insert_sort($arr){ $length = count($arr); for($i=1;$i<$length;$i++){ $tmp = $arr[$i]; $j = $i-1; while($j>=0 && $arr[$j]>$tmp){ $arr[$j+1] = $arr[$j]; $j--; } $arr[$j+1] = $tmp; } return $arr; }
Ringkasan:
Empat kaedah pengisihan di atas ialah algoritma pengisihan biasa dalam PHP. Dalam aplikasi praktikal, isihan pemilihan dan isihan sisipan biasanya digunakan untuk mengisih sejumlah kecil data, isihan gelembung lebih biasa digunakan apabila saiz data kecil, dan isihan pantas ialah algoritma pengisihan yang paling biasa digunakan apabila saiz data adalah besar. Pembangun boleh memilih algoritma pengisihan yang sesuai berdasarkan situasi sebenar.
Atas ialah kandungan terperinci Mari kita bincangkan tentang kaedah pengisihan yang biasa digunakan (algoritma) dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!