> 백엔드 개발 > PHP 문제 > PHP 퀵 정렬 구현

PHP 퀵 정렬 구현

WBOY
풀어 주다: 2023-05-06 10:49:07
원래의
772명이 탐색했습니다.

빠른 정렬은 일반적인 정렬 알고리즘이며 특히 대규모 데이터 정렬 시나리오의 경우 대부분의 경우 다른 정렬 알고리즘보다 빠르게 실행됩니다. PHP에서 빠른 정렬을 구현하는 것도 매우 간단하며 몇 줄의 코드만 필요합니다. 이번 포스팅에서는 PHP에서 빠른 정렬을 구현하는 방법을 소개하겠습니다.

퀵 정렬이란

퀵 정렬은 분할 정복 기반의 정렬 알고리즘으로, 정렬할 시퀀스를 여러 하위 시퀀스로 나누고 각 하위 시퀀스를 벤치마크 값에 따라 정렬합니다. 기본 값은 임의의 숫자일 수 있으며 일반적으로 첫 번째 또는 마지막 요소를 가져온 다음 데이터를 두 그룹으로 나누고 한쪽은 기본 값보다 크고 다른 쪽은 기본 값보다 작습니다. 이 프로세스를 재귀적으로 호출하고 최종적으로 하위 시퀀스를 병합하면 순서가 지정된 시퀀스를 얻을 수 있습니다.

PHP 빠른 정렬 구현

코드는 다음과 같습니다.

function quickSort($arr)
{
    $length = count($arr);
    if ($length <= 1) {
        return $arr;
    }
    $left = $right = array();
    $pivot = $arr[0];
    for ($i = 1; $i < $length; $i++) {
        if ($arr[$i] < $pivot) {
            $left[] = $arr[$i];
        } else {
            $right[] = $arr[$i];
        }
    }
    return array_merge(quickSort($left), array($pivot), quickSort($right));
}
로그인 후 복사

위 코드에서 $arr는 정렬할 배열이고, $left 및 $right 배열은 벤치마크 값보다 작은 숫자와 큰 숫자를 저장하는 데 사용됩니다. 각각 $pivot 기준값으로 배열의 숫자를 루프를 통해 크기에 따라 두 가지 범주로 나누고 마지막으로 왼쪽 부분과 오른쪽 부분의 숫자를 합칩니다.

퀵 정렬의 시간복잡도는 O(nlogn)으로, 실제 사용에서도 매우 효율적입니다.

요약

퀵 정렬은 분할 정복 기반의 일반적인 정렬 알고리즘으로, 벤치마크 번호를 선택하여 정렬할 배열을 두 개의 하위 시퀀스로 나누고, 하위 시퀀스를 재귀적으로 정렬한 후 최종적으로 두 개의 하위 시퀀스를 하나로 병합합니다. 순서대로. PHP에서 빠른 정렬을 구현하는 것도 매우 간단합니다. 위에 제공된 코드는 참고용입니다. 빠른 정렬 알고리즘의 시간 복잡도는 O(nlogn)이며 실제 사용에서는 잘 수행됩니다.

위 내용은 PHP 퀵 정렬 구현의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿