Trier le tableau PHP à l'aide de l'algorithme de perles

藏色散人
Libérer: 2023-04-10 13:36:01
original
2569 Les gens l'ont consulté

Dans "Une brève analyse de la façon de trier des tableaux d'entiers via des classes PHP", nous présentons comment utiliser les classes PHP pour trier des tableaux. Cet article va donc vous présenter un algorithme de perles intéressant et l'utiliser pour trier les tableaux PHP.

Tout d’abord, permettez-moi de vous présenter brièvement ce qu’est l’algorithme du boulier ?

L'algorithme Pearl, également appelé tri des perles, est un algorithme de tri naturel. Il a été développé en 2002 par Joshua J. Arulanandham, Cristian S. Calude et Michael J. Dinneen, et a été publié dans l'Association européenne pour l'association informatique théorique. L'algorithme a été publié lors d'un point de presse de Computer Science (EATCS).

Les implémentations matérielles numériques et analogiques du tri par perles peuvent atteindre O(n). Cependant, les implémentations de cet algorithme ont tendance à être beaucoup plus lentes dans le logiciel et ne peuvent être utilisées que pour trier des listes d'entiers positifs.

Après une brève compréhension de l'algorithme, nous téléchargeons directement le code :

<?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)));
Copier après la connexion

Les résultats d'exécution sont les suivants :

Trier le tableau PHP à laide de lalgorithme de perles

Dans le code ci-dessus, je vais vous présenter plusieurs fonctions clés :

1 , array_unshift( )Fonction : utilisée pour insérer de nouveaux éléments dans un tableau. Les valeurs du nouveau tableau seront insérées au début du tableau. Les éléments ajoutés sont ajoutés dans leur ensemble, dans le même ordre dans le tableau que dans les paramètres. Cette fonction renvoie le nombre d'éléments dans le tableau.

array_unshift()函数:用于向数组插入新元素。新数组的值将被插入到数组的开头。被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样。该函数会返回数组中元素的个数。

2、call_user_func_array:调用回调函数,并把一个数组参数作为回调函数的参数,语法是“call_user_func_array(callable $callback, array $param_arr): mixed”,表示把第一个参数作为回调函数(callback)调用,把参数数组作(param_arr)为回调函数的的参数传入。

3、array_map 2. call_user_func_array : Appelez la fonction de rappel et utilisez un paramètre de tableau comme paramètre de la fonction de rappel. La syntaxe est "call_user_func_array(callable $callback. , array $ param_arr) : Mixed" signifie appeler le premier paramètre comme fonction de rappel (callback) et transmettre le tableau de paramètres (param_arr) comme paramètre de la fonction de rappel.

3. array_map  : Appliquez une fonction de rappel à chaque élément du tableau. Enfin, j'aimerais vous recommander le dernier cours gratuit sur notre plateforme "

Entrer dans le monde de PHP dès 0🎜"~ Venez apprendre ! 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
php
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!