"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > 최대 합의 연속 서브 어레이에 대한 PHP 프로그램

최대 합의 연속 서브 어레이에 대한 PHP 프로그램

2025-02-16에 게시되었습니다
검색:371

PHP 란 무엇입니까?

PHP (HyperText Preprocessor)는 웹 개발에 널리 사용되는 서버 측 스크립팅 언어입니다. 이를 통해 개발자는 HTML 파일 내에 코드를 포함시켜 동적 웹 페이지를 생성하고 데이터베이스와의 상호 작용을 가능하게합니다. PHP는 인기있는 데이터베이스와의 단순성, 다양성 및 광범위한 통합 기능으로 유명합니다. 광범위한 확장을 제공하며 많은 개발자 커뮤니티가있어 충분한 자원과 지원을 보장합니다.

가장 큰 합

PHP Program for Largest Sum Contiguous Subarray

4 (-1) 2 1 = 6

최대 연속 합계는 = 6입니다

Kadane의 알고리즘 사용

Kadane의 알고리즘은 주어진 배열 내에서 연속 서브 어레이의 최대 합을 찾는 데 사용되는 효율적인 알고리즘입니다. 1984 년 Jay Kadane에 의해 개발되었습니다.

알고리즘은 배열을 반복적으로 스캔하고 MAX_SO_FAR 및 MAX_ENDION_HERE의 두 가지 변수를 유지하여 작동합니다. 알고리즘의 작동 방식은 다음과 같습니다.

  • max_so_far 및 max_ending_here 변수를 배열의 첫 번째 요소 또는 배열에 음수가 포함 된 경우 최소 값 (예 : php_int_min)으로 초기화합니다.

  • 두 번째 요소에서 배열을 통해 반복합니다.

  • 각 요소에 대해 현재 요소를 추가하여 max_ending_here를 업데이트하십시오.

  • max_ending_here가 음수가되면 서브 어레이에 현재 요소를 포함 시키면 합이 줄어 듭니다.

  • max_ending_here가 max_so_far보다 큰 경우, 새로운 최대 합계로 max_so_far를 업데이트하십시오.

  • 배열의 나머지 요소에 대해 3 ~ 5 단계를 반복하십시오.

  • 전체 배열을 반복 한 후 max_so_far는 연속 서브 어레이의 최대 합을 유지합니다.

  • 결과적으로 max_so_far를 반환합니다.

Kadane의 알고리즘은 O (n)의 시간 복잡성을 가지고 있으며, 여기서 N은 배열의 크기이며 배열을 통한 단일 패스 만 필요하므로 배열의 크기입니다. 이를 통해 최대 합의 연속 서브 어레이를 찾기위한 효율적인 솔루션이됩니다.

php // PHP 프로그램을 인쇄하는 프로그램 // 인접 배열 합계 함수 maxsubarraysum ($ a, $ size) { $ max_so_far = php_int_min; $ max_ending_here = 0; for ($ i = 0; $ i

산출

최대 연속 합계는 6입니다

알고리즘 패러다임 사용 : 동적 프로그래밍

php 함수 maxsubarraysum ($ a, $ size) { $ max_so_far = $ a [0]; $ curr_max = $ a [0]; for ($ i = 1; $ i

산출

최대 연속 합계는 6입니다

시작 및 끝 인덱스가있는 또 다른 접근 방식

php // PHP 프로그램을 인쇄하는 프로그램 // 인접 배열 합계 함수 maxsubarraysum ($ a, $ size) { $ max_so_far = php_int_min; $ max_ending_here = 0; $ start = 0; $ end = 0; $ s = 0; for ($ i = 0; $ i "; echo "Starting index ". $start . "
". "Ending index " . $end . "
"; } // Driver Code $a = array(-2, 1, -3, 4, -1, 2, 1, -5, 4); $n = sizeof($a); $max_sum = maxSubArraySum($a, $n); ?> 산출

최대 연속 합계는 6입니다 시작 색인 3 결말 색인 6

결론

가장 큰 합계 서브 어레이를 찾기위한 PHP 프로그램은 동적 프로그래밍과 Kadane의 알고리즘을 사용합니다. 동적 프로그래밍 방식은 문제를 더 작은 하위 문제로 분류하고 솔루션을 배열에 저장하여 문제를 효율적으로 해결하기 위해 사용됩니다.

Kadane의 알고리즘은이 프로그램의 핵심 구성 요소이며 가장 큰 합계 서브 어레이를 찾는 책임이 있습니다. 배열을 반복하여 현재 요소를 추가하거나 새 서브 어레이를 시작하여 현재 합계를 지속적으로 업데이트합니다. 발생하는 최대 합계는

$ maxsum 변수에 저장됩니다. 이 프로그램은 배열에서 양수와 음수를 효율적으로 처리합니다. 시작 및 끝 인덱스를 추적하여 가장 큰 합계로 서브 어레이를 식별하여 Array_Slice를 사용하여 서브 어레이를 추출 할 수 있습니다.

동적 프로그래밍과 Kadane의 알고리즘을 사용하여 프로그램은 O (n)의 시간 복잡성을 달성합니다. 여기서 n은 배열의 크기입니다. 이를 통해 PHP에서 가장 큰 합계 서브 어레이 어레이를 찾기위한 효율적인 솔루션을 보장합니다.

릴리스 선언문 이 기사는 https://www.tutorialspoint.com/php-program-for-largest-sum-contiguous-subarray에서 재 인쇄되었습니다.
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3