> 백엔드 개발 > PHP 튜토리얼 > 일반적인 PHP 배열 함수의 Big-O 시간 복잡성은 무엇입니까?

일반적인 PHP 배열 함수의 Big-O 시간 복잡성은 무엇입니까?

DDD
풀어 주다: 2024-12-07 11:01:12
원래의
855명이 탐색했습니다.

What are the Big-O Time Complexities of Common PHP Array Functions?

PHP용 Big-O

PHP로 작업할 때 다양한 내장 기능의 효율성이 크게 달라질 수 있습니다. 이 문서의 목적은 이론적(또는 실제적) Big-O 시대에 대한 통찰력을 제공하는 것입니다.

Lookups

  • array_key_exists: O(n), 그러나 효과적으로 닫힙니다. 해시 조회로 인해 O(1)로 변경되었습니다.
  • isset($array[$index]): O(n), 해시 조회로 인해 O(1)에 가깝습니다.
  • in_array: O(n), 해시 기반 조회보다 느립니다.
  • array_search: O(n), in_array와 유사합니다.

큐 함수

  • array_push: O(∑ var_i, for all i)
  • array_pop: O(1)
  • array_shift: O(n), re -키를 인덱스합니다.
  • array_unshift: O(n ∑ var_i, 모든 i), 재인덱싱으로 인해 속도가 느려집니다.

Array Intersection, Union, Subtraction

  • array_intersect_key: O(Max (param_i_size)*∑param_i_count, 모든 i)에 대해 교차점이 다음과 같은 경우 100%.
  • array_intersect: 교차점이 100%인 경우 O(n^2*∑param_i_count, for all i).
  • array_intersect_assoc: array_intersect_key와 유사합니다.
  • array_diff: O(π param_i_size, 모두에 대해 i), 모든 매개변수 크기의 곱.
  • array_diff_key: O(∑ param_i_size, for i != 1).

임의

  • 셔플: O(n)
  • array_rand: O(n)

명백한 Big-O

  • array_fill: O(n)
  • array_fill_keys: O(n)
  • 범위: O(n)
  • array_splice: O(오프셋 길이)
  • array_slice: O(오프셋 길이) 또는 길이가 다음인 경우 O(n) NULL
  • 배열_키: O(n)
  • array_values: O(n)
  • array_reverse: O(n)

참고

  1. 모든 계산에서는 해시 조회가 다음과 같다고 가정합니다. O(1).
  2. 점근적 성능은 특정 구현 세부 사항 및 입력 데이터에 따라 달라질 수 있습니다.
  3. 배열은 0부터 시작하므로 array_push는 배열의 끝으로 푸시됩니다.

위 내용은 일반적인 PHP 배열 함수의 Big-O 시간 복잡성은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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