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)
참고
- 모든 계산에서는 해시 조회가 다음과 같다고 가정합니다. O(1).
- 점근적 성능은 특정 구현 세부 사항 및 입력 데이터에 따라 달라질 수 있습니다.
- 배열은 0부터 시작하므로 array_push는 배열의 끝으로 푸시됩니다.
위 내용은 일반적인 PHP 배열 함수의 Big-O 시간 복잡성은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!