Rumah > pembangunan bahagian belakang > tutorial php > Isih tatasusunan PHP menggunakan algoritma manik

Isih tatasusunan PHP menggunakan algoritma manik

藏色散人
Lepaskan: 2023-04-10 13:36:01
asal
2649 orang telah melayarinya

Dalam "Analisis Ringkas Cara Mengisih Tatasusunan Integer melalui Kelas PHP", kami memperkenalkan cara menggunakan kelas PHP untuk mengisih tatasusunan. Jadi artikel ini akan memperkenalkan kepada anda algoritma manik yang menarik dan menggunakannya untuk mengisih tatasusunan PHP.

Pertama sekali, izinkan saya memperkenalkan secara ringkas kepada anda apakah algoritma abakus?

Algoritma manik, juga dipanggil pengisihan manik, ialah algoritma pengisihan semula jadi yang dibangunkan oleh Joshua J. Arulanandham, Cristian S. Calude dan Michael J. Dinneen pada tahun 2002, dan telah digunakan dalam komputer teori Eropah The algoritma telah diterbitkan dalam taklimat akhbar Persatuan Eropah untuk Sains Komputer Teori (EATCS).

Kedua-dua pelaksanaan perkakasan digital dan analog bagi pengisihan manik boleh mencapai O(n); namun, pelaksanaan algoritma ini cenderung menjadi lebih perlahan dalam perisian dan hanya boleh digunakan untuk mengisih senarai integer positif.

Selepas memahami ringkas algoritma, kami terus kod:

<?php
function columns($uarr)
{
    $n=$uarr;
    if (count($n) == 0)
        return array();
    else if (count($n) == 1)
        return array_chunk($n[0], 1);
    array_unshift($uarr, NULL);
    $transpose = call_user_func_array(&#39;array_map&#39;, $uarr);
    return array_map(&#39;array_filter&#39;, $transpose);
}
function bead_sort($uarr)
{
    foreach ($uarr as $e)
        $poles []= array_fill(0, $e, 1);
    return array_map(&#39;count&#39;, columns(columns($poles)));
}
echo &#39;原始数组: &#39;.&#39;
&#39;;
var_dump(array(5,3,1,3,8,7,4,1,1,3));
echo &#39;
&#39;.&#39;珠排序后 : &#39;.&#39;
&#39;;
var_dump(bead_sort(array(5,3,1,3,8,7,4,1,1,3)));
Salin selepas log masuk

Keputusan yang dijalankan adalah seperti berikut:

Isih tatasusunan PHP menggunakan algoritma manik

Dalam kod di atas, saya akan memperkenalkan anda kepada beberapa fungsi utama:

1 array_unshift()Fungsi: digunakan untuk memasukkan elemen baharu ke dalam tatasusunan. Nilai tatasusunan baharu akan dimasukkan pada permulaan tatasusunan. Elemen tambahan ditambah secara keseluruhan, dalam susunan yang sama dalam tatasusunan seperti dalam parameter. Fungsi ini mengembalikan bilangan elemen dalam tatasusunan.

2, call_user_func_array: Panggil fungsi panggil balik dan gunakan parameter tatasusunan sebagai parameter fungsi panggil balik Sintaks ialah "call_user_func_array(callable $callback, array $param_arr): mixed", yang bermaksud menggunakan parameter pertama sebagai panggilan balik fungsi (panggilan balik) Panggil dan hantar dalam tatasusunan parameter (param_arr) sebagai parameter fungsi panggil balik.

3, array_map : Gunakan fungsi panggil balik pada setiap elemen tatasusunan.

Akhir sekali, saya ingin mengesyorkan kepada anda kursus percuma terkini di platform kami "Masukkan dunia PHP dari awal"~ Datang dan belajar!

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

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan