Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Isih pantas menggunakan fungsi tatasusunan dalam PHP

Isih pantas menggunakan fungsi tatasusunan dalam PHP

王林
王林asal
2023-06-16 08:54:10742semak imbas

PHP ialah bahasa pengaturcaraan yang sangat popular dan ia digunakan secara meluas untuk pembangunan web. Dalam PHP, tatasusunan ialah jenis data yang sangat biasa dan struktur data yang sangat berkuasa. Oleh sebab itu, PHP menyediakan banyak fungsi tatasusunan untuk membantu pembangun mengendalikan dan memanipulasi tatasusunan. Ini termasuk fungsi isihan pantas, yang membantu kami mengisih tatasusunan dengan cepat.

Isih cepat ialah algoritma pengisihan biasa. Idea asasnya ialah membahagikan tatasusunan kepada dua subtatasusunan, satu lebih kecil daripada yang lain, melalui perbandingan dan pertukaran, kemudian mengisih setiap subtatasusunan secara rekursif. Proses ini berterusan sehingga saiz subarray ialah 1, di mana seluruh tatasusunan diisih.

Dalam PHP, kita boleh menggunakan fungsi sort() untuk mengisih tatasusunan. Fungsi sort() ialah fungsi yang sangat mudah dan praktikal, tetapi algoritma pengisihannya bukanlah algoritma pengisihan pantas. Jika kita ingin mengisih tatasusunan menggunakan algoritma isihan pantas, dalam PHP, kita boleh menggunakan fungsi usort(). Fungsi

usort() boleh membantu kami mengisih tatasusunan dengan cara yang ditentukan. Ia menerima dua parameter: satu ialah tatasusunan untuk diisih, dan satu lagi ialah fungsi panggil balik yang digunakan untuk membandingkan elemen. Fungsi panggil balik ini perlu menerima dua parameter, membandingkan saiznya dan mengembalikan hasil perbandingan (sama, kurang daripada atau lebih besar). Fungsi usort() mengisih tatasusunan berdasarkan hasil perbandingan ini.

Berikut ialah contoh penggunaan fungsi usort() untuk pengisihan pantas:

<?php

function quickSort($arr) {
    if(count($arr) <= 1) {
        return $arr;
    }
    $pivot = $arr[0];
    $left = $right = array();
    for($i = 1; $i < count($arr); $i++) {
        if($arr[$i] < $pivot) {
            $left[] = $arr[$i];
        } else {
            $right[] = $arr[$i];
        }
    }
    return array_merge(quickSort($left), array($pivot), quickSort($right));
}

$arr = array(5, 1, 4, 2, 8);
$arr = quickSort($arr);
print_r($arr);

?>

Dalam contoh ini, kami mentakrifkan fungsi yang dipanggil quickSort(), yang menerima tatasusunan sebagai parameter dan mengembalikan a tatasusunan disusun. Jika saiz tatasusunan ialah 1 atau kurang, fungsi itu tidak akan berulang ke bawah, tetapi akan mengembalikan tatasusunan asal. Jika tidak, fungsi memilih elemen pertama dalam tatasusunan sebagai elemen pangsi (iaitu, pangsi) dan kemudian membahagi tatasusunan kepada dua subarray: satu lebih kecil daripada elemen pangsi dan satu lagi lebih besar daripada elemen pangsi. Kemudian teruskan proses rekursif ini sehingga saiz subarray ialah 1 atau kurang, menggabungkan semua subarray ke dalam tatasusunan yang diisih.

Akhir sekali, kami memanggil fungsi quickSort() dan mencetak hasilnya. Output mestilah tatasusunan yang disusun dari kecil ke besar: tatasusunan(1, 2, 4, 5, 8).

Ringkasnya, adalah sangat mudah untuk menggunakan fungsi tatasusunan untuk pengisihan pantas dalam PHP. Kita hanya perlu mentakrifkan fungsi panggil balik yang membandingkan saiz elemen dan menyampaikannya kepada fungsi usort(). Fungsi ini akan membantu kami menyusun tatasusunan dengan cepat dan mudah, dan merupakan alat yang sangat diperlukan untuk pembangun PHP.

Atas ialah kandungan terperinci Isih pantas menggunakan fungsi tatasusunan dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn