<?php
class BinarySearchAlgorithm {
private $array;
private $value;
public $firstInd;
private $lastInd;
public function Search($array, $value){
if (
// Проверка на пустой массив или позицию за пределами массива
!$arrLength ||
$value < $arrLength[0] ||
$value > $array[$arrLength - 1]
) {
return false;
}
$firstInd = 0;
$lastInd = $arrLength - 1;
if($array[$lastInd] <= $value){
return $lastInd;
}
if($array[$firstInd] >= $value){
return $firstInd;
}
while($firstInd <= $lastInd){
$middleInd = (int
)floor($firstInd + $lastInd) / 2;
if($value > $array[$middleInd]){
$firstInd = $middleInd + 1;
}
elseif($value < $array[$middleInd]){
$lastInd = $middleInd - 1;
}
else {
return $middleInd;
}
}
return (int
)floor($firstInd); }
}
$array = [1, 2, 2, 2, 2, 2, 8, 8];
$obj = new BinarySearchAlgorithm;
class SubArrlgorithm{
private $array;
private $maxLocal;
public $maximum;
static $maxLong;
public function getMaximumSum($array){
$maxLocal = 0;
$maximum = 0;
$maxLong = PHP_INT_MAX;
foreach ($array as $item){
if($maxLong - $maxLocal < $item){
}
$maxLocal += $item;
if($maxLocal < 0){
$maxLocal = 0;
}
if($maxLocal > $maximum){
$maximum = $maxLocal;
}
}
return $maximum;
}
}
$array1 = [1, 2, 4, -6, 7, 8, 9];
$sumAlg = new SubArrlgorithm;
print_r($sumAlg->getMaximumSum($array1));
PD9waHAKCiBjbGFzcyBCaW5hcnlTZWFyY2hBbGdvcml0aG0gewogICAgcHJpdmF0ZSAkYXJyYXk7CiAgICBwcml2YXRlICR2YWx1ZTsKICAgIHB1YmxpYyAkZmlyc3RJbmQ7CiAgICBwcml2YXRlICRsYXN0SW5kOwogICAgCiAgICAgCiAgICBwdWJsaWMgZnVuY3Rpb24gU2VhcmNoKCRhcnJheSwgJHZhbHVlKXsKICAgICAgICAkYXJyTGVuZ3RoID0gc2l6ZW9mKCRhcnJheSk7CiAgICAgICAgCglpZiAoIAogICAgICAgIC8vINCf0YDQvtCy0LXRgNC60LAg0L3QsCDQv9GD0YHRgtC+0Lkg0LzQsNGB0YHQuNCyINC40LvQuCDQv9C+0LfQuNGG0LjRjiDQt9CwINC/0YDQtdC00LXQu9Cw0LzQuCDQvNCw0YHRgdC40LLQsCAKCQkhJGFyckxlbmd0aCB8fAoJCSR2YWx1ZSA8ICRhcnJMZW5ndGhbMF0gfHwKCQkkdmFsdWUgPiAkYXJyYXlbJGFyckxlbmd0aCAtIDFdCgkpIHsKCQlyZXR1cm4gZmFsc2U7Cgl9CiAgICAgICAgCiAgICAgICAgJGZpcnN0SW5kID0gMDsKICAgICAgICAkbGFzdEluZCA9ICRhcnJMZW5ndGggLSAxOwogICAgICAgIAogICAgICAgIGlmKCRhcnJheVskbGFzdEluZF0gPD0gJHZhbHVlKXsKICAgICAgICAgICAgcmV0dXJuICRsYXN0SW5kOwogICAgICAgIH0KICAgICAgICBpZigkYXJyYXlbJGZpcnN0SW5kXSA+PSAkdmFsdWUpewogICAgICAgICAgICByZXR1cm4gJGZpcnN0SW5kOwogICAgICAgIH0KICAgICAgICAKICAgICAgICB3aGlsZSgkZmlyc3RJbmQgPD0gJGxhc3RJbmQpewogICAgICAgICAgICAkbWlkZGxlSW5kID0gKGludClmbG9vcigkZmlyc3RJbmQgKyAkbGFzdEluZCkgLyAyOwogICAgICAgICAgICAKICAgICAgICAgICAgaWYoJHZhbHVlID4gJGFycmF5WyRtaWRkbGVJbmRdKXsKICAgICAgICAgICAgICAgICRmaXJzdEluZCA9ICRtaWRkbGVJbmQgKyAxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBlbHNlaWYoJHZhbHVlIDwgJGFycmF5WyRtaWRkbGVJbmRdKXsKICAgICAgICAgICAgICAgICRsYXN0SW5kID0gJG1pZGRsZUluZCAtIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuICRtaWRkbGVJbmQ7CiAgICAgICAgICAgIH0gIAogICAgICAgIH0KICAgICAgICByZXR1cm4gKGludClmbG9vcigkZmlyc3RJbmQpOwogICAgfQp9CgokYXJyYXkgPSBbMSwgMiwgMiwgMiwgMiwgMiwgOCwgOF07Cgokb2JqID0gbmV3IEJpbmFyeVNlYXJjaEFsZ29yaXRobTsKCnZhcl9kdW1wKCRvYmotPlNlYXJjaCgkYXJyYXksIDQpKTsKIAoKCmNsYXNzIFN1YkFycmxnb3JpdGhtewogICAgcHJpdmF0ZSAkYXJyYXk7CiAgICBwcml2YXRlICRtYXhMb2NhbDsKICAgIHB1YmxpYyAkbWF4aW11bTsKICAgIHN0YXRpYyAkbWF4TG9uZzsgCiAgICAKICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRNYXhpbXVtU3VtKCRhcnJheSl7CiAgICAgICAgCiAgICAgICAgJG1heExvY2FsID0gMDsKICAgICAgICAkbWF4aW11bSA9IDA7CiAgICAgICAgJG1heExvbmcgPSBQSFBfSU5UX01BWDsKICAgICAgICAKICAgICAgICBmb3JlYWNoICgkYXJyYXkgYXMgJGl0ZW0pewogICAgICAgICAgICBpZigkbWF4TG9uZyAtICRtYXhMb2NhbCA8ICRpdGVtKXsKICAgICAgICAgICAgICAgIHByaW50X3IoIlN1bSBpcyB0b28gbGFyZ2UiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgJG1heExvY2FsICs9ICRpdGVtOwoKICAgICAgICAgICAgaWYoJG1heExvY2FsIDwgMCl7CiAgICAgICAgICAgICAgICAkbWF4TG9jYWwgPSAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZigkbWF4TG9jYWwgPiAkbWF4aW11bSl7CiAgICAgICAgICAgICAgICAkbWF4aW11bSA9ICRtYXhMb2NhbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJG1heGltdW07CiAgICB9Cn0gCgokYXJyYXkxID0gWzEsIDIsIDQsIC02LCA3LCA4LCA5XTsKJHN1bUFsZyA9IG5ldyBTdWJBcnJsZ29yaXRobTsKcHJpbnRfcigkc3VtQWxnLT5nZXRNYXhpbXVtU3VtKCRhcnJheTEpKTsKCg==