Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menyusun tatasusunan dalam php tanpa menggunakan fungsi

Bagaimana untuk menyusun tatasusunan dalam php tanpa menggunakan fungsi

PHPz
PHPzasal
2023-04-23 10:05:44722semak imbas

PHP ialah bahasa skrip bahagian pelayan sumber terbuka yang sangat popular yang digunakan secara meluas untuk membangunkan aplikasi web. Dalam PHP, pengisihan ialah operasi yang sangat penting, yang boleh membantu kami memproses data dengan cepat dan tepat.

Dalam PHP, kami biasanya menggunakan fungsi terbina dalam atau kaedah tatasusunan untuk mengisih tatasusunan. Walau bagaimanapun, dalam artikel ini, saya ingin membincangkan cara lain untuk mengisih tanpa menggunakan fungsi terbina dalam PHP dan kaedah tatasusunan.

Dalam PHP, kita boleh menggunakan algoritma pengisihan berasaskan perbandingan untuk mengisih. Algoritma ini bergantung pada membandingkan hubungan saiz antara dua elemen dan kemudian meletakkannya dalam susunan tertentu. Kaedah pengisihan ini sangat berkesan, tetapi ia memerlukan penggunaan fungsi atau kaedah tatasusunan untuk dilaksanakan.

Walau bagaimanapun, kami juga mempunyai algoritma yang dipanggil pengisihan bukan perbandingan. Algoritma ini boleh mengisih tanpa membandingkan perhubungan saiz antara dua elemen, jadi ia lebih pantas dan lebih cekap memori daripada algoritma pengisihan berasaskan perbandingan.

Salah satu algoritma pengisihan bukan perbandingan ialah mengira isihan. Algoritma pengisihan ini menentukan kedudukan setiap elemen dalam isihan berdasarkan nilainya. Nilai setiap elemen ialah berapa banyak elemen sebelum ia lebih kecil daripada ia dalam pengisihan. Kami kemudiannya boleh menggunakan tatasusunan sementara untuk menyimpan bilangan kali setiap nilai berlaku, dan kemudian menentukan kedudukan setiap elemen berdasarkan tatasusunan kiraan.

Berikut ialah contoh kod:

function countingSort($arr) {
    $maxVal = max($arr);
    $count = array_fill(0, $maxVal + 1, 0);
    $output = array_fill(0, count($arr), 0);

    foreach ($arr as $val) {
        $count[$val]++;
    }

    for ($i = 1; $i <= $maxVal; $i++) {
        $count[$i] += $count[$i - 1];
    }

    for ($i = count($arr) - 1; $i >= 0; $i--) {
        $output[$count[$arr[$i]] - 1] = $arr[$i];
        $count[$arr[$i]]--;
    }

    return $output;
}

Dalam pengisihan mengira, mula-mula kita mencari elemen terbesar dalam tatasusunan dan kemudian mencipta tatasusunan mengira. Seterusnya, kami melingkari keseluruhan tatasusunan dan merekodkan bilangan kejadian setiap elemen dalam tatasusunan kiraan. Kemudian buat tatasusunan keluaran dan isikannya dengan nilai dalam tatasusunan kiraan. Akhirnya, tatasusunan output dikembalikan sebagai hasil yang diisih.

Menggunakan pengisihan mengira adalah lebih pantas daripada kaedah pengisihan menggunakan fungsi terbina dalam PHP dan kaedah tatasusunan. Kerumitan masa bagi kaedah ini ialah O(n+k), di mana n ialah bilangan unsur dan k ialah nilai maksimum unsur.

Ringkasnya, walaupun PHP menyediakan banyak fungsi terbina dalam dan kaedah tatasusunan untuk operasi pengisihan, menggunakan algoritma pengisihan bukan perbandingan boleh menjadi lebih cekap dan menjimatkan memori. Mengira isihan ialah salah satu algoritma yang sangat berguna yang boleh membantu kami mengisih tatasusunan dengan cepat.

Atas ialah kandungan terperinci Bagaimana untuk menyusun tatasusunan dalam php tanpa menggunakan fungsi. 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