CodeBlanks Logo Icon CodeBlanks

Üç adım

Böl, yönet, birleştir adımlarını öğrenirsin.

Üç adım

Böl ve yönet (divide and conquer) üç adımdan oluşur: böl, yönet, birleştir.

Problem alt problemlere bölünür, her biri recursive çözülür, sonuçlar birleştirilir.

Bu yaklaşım, merge sort, quick sort ve binary search gibi klasik algoritmalarda kullanılır.

Örnek: merge sort

Merge sort bu üç adımı izler: diziyi ikiye böl, her yarıyı sırala, sıralı yarıları birleştir.

Bu yaklaşım O(n log n) süre verir; büyük verilerde verimli çalışır.

Merge sort, böl ve yönetin tipik örneğidir; her adımda dizi ikiye ayrılır.

Uygulama Böl toplam

dc_sum(arr) yaz. Diziyi ikiye böl, yarıların toplamını recursive hesapla, topla. print(dc_sum([1, 2, 3, 4])) ile 10 yazdır.

Başlangıç kodu

solution.py
def dc_sum(arr):
    # Böl ve topla

Örnek çözüm

solution.py
def dc_sum(arr):
    # Böl ve topla
    if len(arr) <= 1:
        return sum(arr)
    mid = len(arr) // 2
    left = dc_sum(arr[:mid])
    right = dc_sum(arr[mid:])
    return left + right
print(dc_sum([1, 2, 3, 4]))

Beklenen çıktı

10

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Böl ve yönet'in adımları hangi sıradadır?

  • Böl, yönet, birleştir Doğru cevap
  • Böl, birleştir, yönet
  • Yönet, böl, birleştir
  • Birleştir, böl, yönet

Açıklama: Böl, yönet, birleştir.

2 Alt problem

Soru
mid = len(arr) ____ 2
Cevap
mid = len(arr) // 2

Açıklama: // doğru.

3 Üç adım: kavramları eşleştir

Kavram Anlamı
divide Böl
conquer Yönet
combine Birleştir
recursion Kendini çağırır

Orta seviye bölümündeki tüm dersler