Divide And Conquer Metodu ile Üs Hesaplayan PHP Kodu

!```php (php-logo.jpg){right}Divide And Conquer metodu, bir problemi daha küçük alt problemlere bölmek, küçük problemleri çözmek ve bunları birleştirmek anlamına gelmektedir.

Aşağıdaki ufak kod parçası, verilen bir sayının, verilen bir sayı kadar üssünü divide and conquer yöntemi ile alır.

Karmaşıklığı O(n)’dir.

For foreigners: The algorithm bellow calculates a number’s power using divide and conquer method. It’s complexity is O(n). Educational purposes only. There are less complex algorithms exist to do that (due to recursion overhead).

Kod Parçası


``` <?php /* Yazar: Umut Benzer http://www.ubenzer.com/ Kullanım: power(TABAN,US); */

echo power(9,17); /* 9 üssü 17 */

function power($base, $exp) { if($exp > 1) { $b = round($exp / 2,0, PHP_ROUND_HALF_DOWN); $c = $exp - $b;

$result_left = power($base, $b); $result_right= power($base, $c); return $result_left * $result_right; } else { return $base; } }

Nasıl Çalışıyor?

divide_and_conquer_us_alma divide_and_conquer_us_alma