«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > PHP -программа для крупнейшей суммы смежного Subarray

PHP -программа для крупнейшей суммы смежного Subarray

Опубликовано в 2025-02-16
Просматривать:905

что такое PHP?

]

PHP (гипертекстовый препроцессор) является широко используемым языком сценариев на стороне сервера для веб-разработки. Это позволяет разработчикам встраивать код в файлы HTML, обеспечивая создание динамических веб -страниц и взаимодействия с базами данных. PHP известен своей простотой, универсальностью и обширными возможностями интеграции с популярными базами данных. Он предлагает широкий спектр расширений и имеет большое сообщество разработчиков, обеспечивая достаточные ресурсы и поддержку.

]

PHP -программа для наибольшей суммы смежного subarray

]

PHP Program for Largest Sum Contiguous Subarray

4 (-1) 2 1 = 6

]

максимальная смежная сумма - = 6

]

Использование алгоритма Кадана

]

Алгоритм Кадана является эффективным алгоритмом, используемым для поиска максимальной суммы смежного субрай в данном массиве. Он был разработан Джеем Кадана в 1984 году.

]

алгоритм работает путем итеративного сканирования массива и поддержав две переменные: max_so_far и max_ending_here. Вот как работает алгоритм:

]
    ]
  • инициализируйте переменные MAX_SO_FAR и MAX_ENDING_HEERE в первый элемент массива или к минимальному значению (например, PHP_INT_MIN), если массив содержит отрицательные числа.

  • ]
  • итерация через массив из второго элемента и дальше.

  • ]
  • для каждого элемента обновите max_ending_here, добавив в него текущий элемент.

  • ]
  • , если max_ending_here станет отрицательным, сбросить его до 0, потому что включение текущего элемента в субрай будет уменьшить сумму.

  • ]
  • , если max_ending_here больше, чем max_so_far, обновление max_so_far с новой максимальной суммой.

  • ]
  • повторить шаги с 3 по 5 для оставшихся элементов массива.

  • ]
  • после итерации по всему массиву, max_so_far будет содержать максимальную сумму смежного субрай.

  • ]
  • return max_so_far в качестве результата.

  • ]
]

Алгоритм Кадана обладает временной сложностью O (n), где n - это размер массива, поскольку он требует только одного прохода через массив. Это делает его эффективным решением для поиска максимальной суммы смежного субрай.

]

Пример


]

Выход

Maximum contiguous sum is 6
]

Использование алгоритмической парадигмы: динамическое программирование

]

Пример


]

Выход

Maximum contiguous sum is 6
]

еще один подход с индексами начала и конца

]

Пример

";
	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); ?>
]

Выход

Maximum contiguous sum is 6 
Starting index 3 
Ending index 6
]

Заключение

PHP -программа для поиска самой большой суммы смежного Subarray использует динамическое программирование и алгоритм Кадана. Подход динамического программирования используется для эффективного решения проблемы, разбивая ее на более мелкие подгруппы и сохраняя решения в массиве.

]

Алгоритм Кадана является ключевым компонентом программы и отвечает за поиск самой большой суммы. Он итерации над массивом, постоянно обновляя текущую сумму, либо добавив текущий элемент, либо запустив новый Subarray. Максимальная сумма, встречающаяся, хранится в переменной $ maxsum. Программа эффективно обрабатывает как положительные, так и отрицательные числа в массиве. Он идентифицирует Subarray с самой большой суммой, отслеживая начальные и конечные показатели, что позволяет извлечь Subarray с помощью array_slice.

]

, используя динамическое программирование и алгоритм Кадана, программа достигает временной сложности O (n), где n - размер массива. Это обеспечивает эффективное решение для поиска самой большой суммы смежного субрай в PHP.

]
Заявление о выпуске Эта статья переиздана по адресу: https://www.tutorialspoint.com/php-program-for-laright-sum-sum-contagent-subarray Если есть какие-либо нарушения, пожалуйста, свяжитесь с исследованием[email protected], чтобы удалить его.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3