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('array_map', $uarr); return array_map('array_filter', $transpose); } function bead_sort($uarr) { foreach ($uarr as $e) $poles []= array_fill(0, $e, 1); return array_map('count', columns(columns($poles))); } echo '原始数组: '.' '; var_dump(array(5,3,1,3,8,7,4,1,1,3)); echo ' '.'珠排序后 : '.' '; var_dump(bead_sort(array(5,3,1,3,8,7,4,1,1,3)));
Keputusan yang dijalankan adalah seperti berikut:
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, c
all_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!