>백엔드 개발 >PHP 튜토리얼 >비드 알고리즘을 사용하여 PHP 배열 정렬

비드 알고리즘을 사용하여 PHP 배열 정렬

藏色散人
藏色散人원래의
2021-08-03 14:26:302619검색

"PHP 클래스를 통한 정수 배열 정렬 방법에 대한 간략한 분석"에서는 PHP 클래스를 사용하여 배열을 정렬하는 방법을 소개합니다. 따라서 이 기사에서는 흥미로운 비드 알고리즘을 소개하고 이를 사용하여 PHP 배열을 정렬할 것입니다.

먼저 주판알고리즘이 무엇인지 간략하게 소개하겠습니다.

비드 정렬이라고도 불리는 Pearl 알고리즘은 2002년 Joshua J. Arulanandham, Cristian S. Calude 및 Michael J. Dinneen이 개발했으며 유럽 이론 컴퓨터 협회(European Association for Theoretical Computer Association)에 게시되었습니다. 이 알고리즘은 Computer Science(EATCS)의 언론 브리핑에 발표되었습니다.

비드 정렬의 디지털 및 아날로그 하드웨어 구현 모두 O(n)을 달성할 수 있지만, 이 알고리즘의 구현은 소프트웨어에서 훨씬 느린 경향이 있으며 양의 정수 목록을 정렬하는 데에만 사용할 수 있습니다.

알고리즘에 대해 간략하게 이해한 후, 직접 코드를 업로드합니다:

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

실행 결과는 다음과 같습니다.

비드 알고리즘을 사용하여 PHP 배열 정렬

위 코드에서 몇 가지 주요 기능을 소개하겠습니다.

1 , array_unshift( )함수: 배열에 새 요소를 삽입하는 데 사용됩니다. 새 배열의 값은 배열의 시작 부분에 삽입됩니다. 추가된 요소는 매개변수와 동일한 순서로 배열에 전체적으로 추가됩니다. 이 함수는 배열의 요소 수를 반환합니다. 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: 콜백 함수를 호출하고 배열 매개변수를 콜백 함수의 매개변수로 사용합니다. 구문은 "call_user_func_array(callable $callback)입니다. , 배열 $ param_arr): 혼합'은 첫 번째 매개변수를 콜백 함수(callback)로 호출하고, 매개변수 배열(param_arr)을 콜백 함수의 매개변수로 전달하는 것을 의미합니다.

3. array_map : 배열의 각 요소에 콜백 함수를 적용합니다.

마지막으로, 저희 플랫폼의 최신 무료 강좌 "🎜Entering the World of PHP from 0🎜"을 추천하고 싶습니다~ 와서 배워보세요! 🎜

위 내용은 비드 알고리즘을 사용하여 PHP 배열 정렬의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.