Rumah >pembangunan bahagian belakang >tutorial php >Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan PHP
Bagaimana untuk menulis algoritma pengisihan tatasusunan PHP tersuai? Isih gelembung: Mengisih tatasusunan dengan membandingkan dan menukar elemen bersebelahan. Isih pilihan: Pilih elemen terkecil atau terbesar setiap kali dan tukarkannya dengan kedudukan semasa. Isih sisipan: Masukkan unsur satu demi satu ke dalam bahagian yang diisih.
Panduan menulis algoritma pengisihan tersuai untuk tatasusunan PHP
Pengenalan
Pengisihan tatasusunan ialah tugas biasa dalam pengaturcaraan yang membolehkan kami menyusun semula elemen dalam tatasusunan berdasarkan kriteria tertentu. PHP menyediakan pelbagai algoritma pengisihan terbina dalam, tetapi kadangkala kita perlu mengisih tatasusunan berdasarkan logik tersuai, yang memerlukan kita menulis algoritma pengisihan tersuai kita sendiri.
Isih Buih
Isih Buih ialah algoritma pengisihan mudah yang mengisih tatasusunan dengan berulang kali membandingkan elemen bersebelahan dan menukar kedudukannya.
function bubbleSort(array &$arr) { $n = count($arr); for ($i = 0; $i < $n - 1; $i++) { for ($j = 0; $j < $n - $i - 1; $j++) { if ($arr[$j] > $arr[$j + 1]) { $tmp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $tmp; } } } }
Isih pilihan
Isih pilihan ialah algoritma pengisihan berdasarkan pemilihan elemen terkecil atau terbesar dan menukarnya dengan kedudukan semasanya.
function selectionSort(array &$arr) { $n = count($arr); for ($i = 0; $i < $n - 1; $i++) { $min_idx = $i; for ($j = $i + 1; $j < $n; $j++) { if ($arr[$j] < $arr[$min_idx]) { $min_idx = $j; } } $tmp = $arr[$i]; $arr[$i] = $arr[$min_idx]; $arr[$min_idx] = $tmp; } }
Isihan sisipan
Isihan sisipan ialah algoritma pengisihan berdasarkan memasukkan elemen satu demi satu ke dalam bahagian yang tersusun.
function insertionSort(array &$arr) { $n = count($arr); for ($i = 1; $i < $n; $i++) { $key = $arr[$i]; $j = $i - 1; while ($j >= 0 && $arr[$j] > $key) { $arr[$j + 1] = $arr[$j]; $j--; } $arr[$j + 1] = $key; } }
Kes praktikal
Mari kita mengisih tatasusunan PHP berikut dalam tertib menaik menggunakan algoritma isihan gelembung:
$arr = [5, 2, 8, 3, 1];
Panggil fungsi isihan gelembung:
bubbleSort($arr);
Tatasusunan yang diisih:
[1, 2, 3, 5, 8]
Atas ialah kandungan terperinci Panduan untuk menulis algoritma pengisihan tersuai untuk tatasusunan PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!