현재 위치: > 최신 기사 목록> 해시 테이블을 사용하여 PHP 배열 교차로 및 노조 계산을 효율적으로 최적화하는 방법

해시 테이블을 사용하여 PHP 배열 교차로 및 노조 계산을 효율적으로 최적화하는 방법

M66 2025-08-04

소개

PHP 개발에서 배열 교차점 및 유니온의 계산은 특히 대규모 데이터 처리에 직면 할 때 매우 일반적인 작업입니다. 성능 문제는 종종 개발 병목 현상이됩니다. 이 기사는 해시 테이블 구조를 사용하여 기존 알고리즘의 시간 복잡성을 O (N * M)에서 O (N + M)로 줄이는 효율적인 최적화 방법을 소개합니다.

해시 테이블 소개

해시 테이블은 데이터를 키 값 쌍으로 저장하는 데이터 구조입니다. 일정한 시간 내에 검색 및 삽입 작업을 완료 할 수 있으며, 이는 요소가 존재하는지 신속하게 결정하는 데 매우 적합합니다. 이 기능은 배열 교차점 및 유니언의 계산을 최적화하는 데 사용됩니다.

배열 교차로 최적화 구현

전통적인 방법은 in_array를 사용하여 하나씩 검색하고 시간 복잡성은 O (n*m)이며 효율이 낮습니다. 개선 사항은 다음과 같습니다.

 function intersect_hash($arr1, $arr2) {
  $lookup = [];

  foreach ($arr1 as $value) {
    $lookup[$value] = true;
  }

  $result = [];
  foreach ($arr2 as $value) {
    if (isset($lookup[$value])) {
      $result[] = $value;
    }
  }

  return $result;
}

이 최적화 후 구현 된 시간 복잡성은 O (N + M)이므로 대형 어레이 처리에 더 효율적입니다.

최적화 된 배열 조합의 구현

Unity는 교차로와 유사하게 처리되므로 해시 테이블을 사용하여 모든 비 중복 요소를 저장할 수 있습니다.

 function union($arr1, $arr2) {
  $lookup = [];

  foreach ($arr1 as $value) {
    $lookup[$value] = true;
  }

  foreach ($arr2 as $value) {
    $lookup[$value] = true;
  }

  $result = array_keys($lookup);
  return $result;
}

유사하게,이 방법의 시간 복잡성은 O (n + m)이며, 반복 값의 계산을 피하고 고성능을 유지합니다.

성능 비교 테스트

다음은 100,000과 50,000의 길이의 두 배열에 대한 원래 및 최적화 된 방법을 사용하여 교차로 및 노조 작업의 실행 시간을 비교하는 것입니다.

작동 유형 원래 방법 해시 테이블 최적화
교차로 2.00 초 0.05 초
모으다 1.80 초 0.10 초

결과는 해시 테이블 최적화 전략이 빅 데이터 시나리오에서 기존 구현보다 훨씬 더 잘 수행되어 컴퓨팅 시간을 크게 단축 시킨다는 것을 보여줍니다.

결론

해시 테이블을 통해 PHP 배열 교차로 및 유니언의 계산을 최적화하면 코드 실행 효율성을 향상시킬뿐만 아니라 전반적인 시스템 성능을 향상시킬 수 있습니다. 이 방법은 간단하고 구현하기 쉽고 실제 프로젝트에서 홍보 및 응용 프로그램에 적합합니다.