PHP 내장 함수의 시간 복잡도 이해
다양한 PHP 내장 함수는 데이터 구조를 처리할 때 서로 다른 시간 복잡도를 나타냅니다. 이 문서에서는 개발자가 코드 성능을 최적화할 수 있도록 이러한 기능에 대한 이론적이고 실제적인 Big-O 시간의 포괄적인 목록을 제공합니다.
흥미로운 점
-
isset/array_key_exists: 조회 작업에서 in_array 및 array_search보다 훨씬 빠릅니다.
-
(Union): array_merge보다 약간 빠르며 더 간결한 구문을 제공합니다. 배열을 결합하는 데 사용됩니다.
-
shuffle: array_rand와 동일한 Big-O 복잡성을 갖고 있어 두 기능 모두 데이터 무작위화에 적합합니다.
-
array_pop/array_push: 수행 중에 발생하는 페널티로 인해 array_shift/array_unshift보다 빠릅니다. 재인덱싱.
조회
-
array_key_exists: 사실상 O(1), 이론적인 O(에도 불구하고 해시 조회는 순간에 가깝기 때문입니다. n) 복잡성.
-
isset( $array[$index] ): array_key_exists와 유사하며 거의 일정한 시간 복잡도를 보여줍니다.
-
in_array: O(n), 배열을 통해 선형 검색을 수행하므로 .
-
array_search: O(n), 동일한 코어 활용 in_array로 작동하지만 값을 반환합니다.
큐 함수
-
array_push: O(∑ var_i, for all i), 여기서 var_i는 추가를 나타냅니다. 다음과 같이 전달된 값 인수.
-
array_pop: O(1).
-
array_shift: O(n), 재인덱싱이 필요하기 때문입니다.
-
array_unshift: O(n ∑ var_i, 모든 i)에 대해 다시 필요한 재인덱싱의 결과입니다.
Array Intersection, Union, Subtraction
-
array_intersect_key: 교차하는 경우 100%, O(Max(param_i_size) * ∑param_i_count, i) 모두에 대해; 교차점이 0%인 경우 O(∑param_i_size, 모든 i에 대해).
-
array_intersect: 교차점이 100%인 경우 O(n^2 * ∑param_i_count, 모든 i에 대해); 교차점이 0%인 경우 O(n^2).
-
array_intersect_assoc: array_intersect_key와 유사하며 동일한 Big-O 시간 복잡성을 나타냅니다.
-
array_diff : O(π param_i_size, for all i), 제품을 나타냄 매개변수 크기의
-
array_diff_key: O(∑ param_i_size, for i != 1), 첫 번째 배열에 대한 반복을 제외하기 때문입니다.
-
array_merge: O(∑ array_i, i != 1), 아님 첫 번째 배열에 대한 반복이 필요합니다.
-
(Union): O(n), 여기서 n은 두 번째 배열의 크기이며 array_merge보다 오버헤드가 낮습니다.
- array_replace: O(∑ array_i, 모두에 대해 i).
랜덤
-
셔플: O(n).
-
array_rand: O (n), 선형을 포함 search.
확실한 Big-O
-
array_fill: O(n).
-
array_fill_keys : O(n).
-
범위: O(n).
-
array_splice: O(오프셋 길이).
- array_slice: O(오프셋 길이) 또는 길이인 경우 O(n) = NULL.
-
array_keys: O(n).
-
배열_값: O(n).
-
배열_역방향: O(n).
-
배열_패드: O(패드 크기).
-
array_flip: O(n).
-
array_sum: O(n).
-
배열_제품: O(n).
-
array_reduce: O(n).
-
array_filter: O(n).
-
배열_맵: O(n).
-
array_chunk: O(n).
-
array_combine: O(n).
위 내용은 일반적인 PHP 내장 배열 함수의 시간 복잡성은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!