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ı, bir dizideki (sıralı olmasına gerek yok) en büyük ve en küçük elemanları divide and conquer yöntemi ile bulur.
Karmaşıklığı O(n)’dir.
For foreigners: The algorithm bellow find biggest and smallest elements in an unsorted array using divide and conquer method. It’s complexity is O(n). Educational purposes only. There are algorithms which is better to do that (due to recursion overhead).
Kod Parçası
<?php /* Yazar: Umut Benzer https://ubenzer.com/ Kullanım: find(array(dizi elemanları)); */ echo var_dump(find(array(8,2,7,2003, 2000, 19, 3, 1, 89, 90, 4,80, 90))); function find($dizi) { if(count($dizi) > 1) { $b = array_slice ($dizi, 0, round(count($dizi) / 2,0, PHP_ROUND_HALF_DOWN)); $c = array_slice ($dizi, round(count($dizi) / 2,0, PHP_ROUND_HALF_DOWN)); list($min_left, $max_left) = find($b); list($min_right, $max_right) = find($c); return ( array( ($min_left < $min_right ? $min_left : $min_right), ($max_left > $max_right ? $max_left : $max_right) )); } else { return array($dizi[0],$dizi[0]); } }
‘de, da’ eki nasıl yazılır?
Almanya’dan kalıcı oturuma izni (niederlassungserlaubnis) nasıl alınır?
Almanya’da nasıl ehliyet aldım?
22 Ağustos Engellerine Eğlenceli Bir Eleştiri…
Almanya’da nasıl ehliyet aldım?
Bir şirket neden uzaktan çalışmaya (remote working) izin verir?
-de -da eki ne zaman ayrı yazılır?
Almanya’ya gelmek için yapılan bürokratik işlemler