>  기사  >  백엔드 개발  >  PHP에서 빠른 정렬을 구현하는 방법은 무엇입니까?

PHP에서 빠른 정렬을 구현하는 방법은 무엇입니까?

藏色散人
藏色散人원래의
2019-03-04 10:19:539351검색

빠른 정렬은 비교 정렬입니다. 즉, 모든 유형의 요소를 정렬할 수 있습니다. 퀵 정렬은 버블 정렬을 개선한 것이라고 할 수 있습니다.

PHP에서 빠른 정렬을 구현하는 방법은 무엇입니까?

빠른 정렬 구현 아이디어의 개략도는 다음과 같습니다.

PHP에서 빠른 정렬을 구현하는 방법은 무엇입니까?

참고: 수평선은 피벗 값입니다.

빠른 정렬 알고리즘 코드는 다음과 같습니다.

<?php
function quick_sort($my_array)
{
    $loe = $gt = array();
    if(count($my_array) < 2)
    {
        return $my_array;
    }
    $pivot_key = key($my_array);
    $pivot = array_shift($my_array);
    foreach($my_array as $val)
    {
        if($val <= $pivot)
        {
            $loe[] = $val;
        }elseif ($val > $pivot)
        {
            $gt[] = $val;
        }
    }
    return array_merge(quick_sort($loe),array($pivot_key=>$pivot),quick_sort($gt));
}

$my_array = array(3, 0, 2, 5, -1, 4, 1);
echo &#39;原始数组 : &#39;.implode(&#39;,&#39;,$my_array).&#39;\n&#39;;
$my_array = quick_sort($my_array);
echo &#39;排序后数组 : &#39;.implode(&#39;,&#39;,$my_array);

출력:

原始数组:3,0,2,5,-1,4,1                             
排序后数组:-1,0,1,2,3,4,5

관련 함수 소개:

array_shift() 함수는 배열의 시작 부분에 있는 단위를 배열 밖으로 이동합니다.

array_shift ( array &$array ) : mixed

array_shift()는 배열의 첫 번째 단위를 밖으로 이동하고 결과로 반환합니다. , 배열의 길이를 하나씩 줄이고 다른 모든 단위를 하나씩 앞으로 이동합니다. 모든 숫자 키 이름은 0부터 계산되도록 변경되며, 텍스트 키 이름은 변경되지 않습니다.

array_merge() 함수는 하나 이상의 배열을 병합합니다.

array_merge ( array $array1 [, array $... ] ) : array

array_merge()는 하나 이상의 배열의 셀을 병합하고 한 배열의 값은 이전 배열에 추가됩니다. 결과 배열을 반환합니다.

이 글은 PHP 퀵 정렬 알고리즘에 대한 소개입니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

위 내용은 PHP에서 빠른 정렬을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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