Heim  >  Artikel  >  Backend-Entwicklung  >  Sortieren Sie das PHP-Array mithilfe des Bead-Algorithmus

Sortieren Sie das PHP-Array mithilfe des Bead-Algorithmus

藏色散人
藏色散人Original
2021-08-03 14:26:302513Durchsuche

In „Eine kurze Analyse, wie man Ganzzahl-Arrays mithilfe von PHP-Klassen sortiert“ stellen wir vor, wie man PHP-Klassen zum Sortieren von Arrays verwendet. In diesem Artikel stellen wir Ihnen einen interessanten Bead-Algorithmus vor und verwenden ihn zum Sortieren von PHP-Arrays.

Lassen Sie mich zunächst kurz vorstellen, was der Abakus-Algorithmus ist.

Der Perlenalgorithmus, auch Perlensortierung genannt, ist ein natürlicher Sortieralgorithmus. Er wurde 2002 von Joshua J. Arulanandham, Cristian S. Calude und Michael J. Dinneen entwickelt und in der European Association for Theoretical Computer Association veröffentlicht. Der Algorithmus wurde in einer Pressekonferenz von Computer Science (EATCS) veröffentlicht.

Sowohl digitale als auch analoge Hardware-Implementierungen der Perlensortierung können O(n) erreichen; Implementierungen dieses Algorithmus sind jedoch in der Software tendenziell viel langsamer und können nur zum Sortieren von Listen positiver Ganzzahlen verwendet werden.

Nach einem kurzen Verständnis des Algorithmus laden wir direkt den Code hoch:

<?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)));

Die laufenden Ergebnisse sind wie folgt:

Sortieren Sie das PHP-Array mithilfe des Bead-Algorithmus

Im obigen Code werde ich Ihnen mehrere Schlüsselfunktionen vorstellen:

1 , array_unshift()Funktion: Wird zum Einfügen neuer Elemente in ein Array verwendet. Die Werte des neuen Arrays werden am Anfang des Arrays eingefügt. Die hinzugefügten Elemente werden als Ganzes hinzugefügt, in der gleichen Reihenfolge im Array wie in den Parametern. Diese Funktion gibt die Anzahl der Elemente im Array zurück. 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: Rufen Sie die Callback-Funktion auf und verwenden Sie einen Array-Parameter als Parameter der Callback-Funktion. Die Syntax lautet „call_user_func_array(callable $callback , Array $ param_arr): gemischt“ bedeutet, den ersten Parameter als Rückruffunktion (Callback) aufzurufen und das Parameterarray (param_arr) als Parameter der Callback-Funktion zu übergeben.

3. array_map : Wenden Sie eine Rückruffunktion auf jedes Element des Arrays an.

Abschließend möchte ich Ihnen den neuesten kostenlosen Kurs auf unserer Plattform „🎜Entering the World of PHP from 0🎜“ empfehlen ~ Kommen Sie und lernen Sie! 🎜

Das obige ist der detaillierte Inhalt vonSortieren Sie das PHP-Array mithilfe des Bead-Algorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn