---
title: Böl ve Fethet Algoritması : Merge Sort
slug: bol-ve-fethet-algoritmasi-merge-sort
url: /detay/bol-ve-fethet-algoritmasi-merge-sort
type: article
language: Türkçe
entity:
  primary: Böl ve Fethet Algoritması : Merge Sort
  type: article
  disambiguation: Böl ve Fethet algoritması: Merge Sort ile verimli sıralama ve problem çözme yöntemlerini öğrenin.  Karmaşıklık analizi ve kod örnekleri.
  categories:
    - name: Bilişim Ve İletişim Teknolojileri
      slug: bilisim-ve-iletisim-teknolojileri
      url: /kategori/bilisim-ve-iletisim-teknolojileri
    - name: Yazılım Ve Yapay Zekâ
      slug: yazilim-ve-yapay-zeka
      url: /kategori/yazilim-ve-yapay-zeka
    - name: Mühendislik
      slug: muhendislik
      url: /kategori/muhendislik
  tags:
    - minelement
    - maxelement
    - mergesort
    - merge
    - bölvefethet
    - divideandconquer
    - algoritma
author: Abdulsamet Ekinci
created_at: 2025-02-22T14:34:14.447320+03:00
updated_at: 2025-04-17T11:48:30.070748+03:00
---

# Böl ve Fethet Algoritması : Merge Sort

<!-- CONTEXT: Article Content for "Böl ve Fethet Algoritması : Merge Sort" -->

## Article Content

Böl ve fethet (Divide and Conquer) algoritmaları, büyük bir problemi daha [küçük](/tr/detay/kucuk-750344/llms.txt) alt problemlere ayırarak çözüme ulaşan bir yaklaşımdır. Bu algoritmalar genellikle üç aşamadan oluşur:

1. **Bölme (Divide):** Problem, daha küçük ve yönetilebilir alt problemlere bölünür.
2. **Çözme (Conquer):** Alt problemler bağımsız olarak çözülür.
3. **Birleştirme (Combine):** Alt problemlerin çözümleri birleştirilerek ana problemin çözümü elde edilir.

Bu [yöntem](/tr/detay/yontem-2/llms.txt), özellikle sıralama, arama, [matris](/tr/detay/matris-2/llms.txt) çarpımı ve en iyi rota hesaplamaları [gibi](/tr/detay/gibi-749510/llms.txt) birçok bilgisayar bilimi probleminde etkili bir şekilde kullanılır.

### **Böl ve Fethet Algoritması ile Maksimum Elemanı Bulma**

Bir dizideki en büyük elemanı bulmanın en temel yöntemi O(n²) karmaşıklığa sahip olan çift döngülü karşılaştırma yöntemidir. Ancak, Böl ve Fethet Algoritması kullanılarak bu işlem O(nlogn) veya hatta O(log n) [zaman](/tr/detay/zaman-2/llms.txt) karmaşıklığında gerçekleştirilebilir.

#### **Klasik Yöntem: O(n²) Karmaşıklık**

İki iç içe [geçmiş](/tr/detay/gecmis-750335/llms.txt) döngü kullanarak maksimum elemanı bulmak, her elemanın diğerleriyle karşılaştırılmasını gerektirir:

Bu yöntem verimsizdir, çünkü her eleman gereksiz yere defalarca karşılaştırılır.

#### **Böl ve Fethet Algoritması ile Maksimum Bulma: O(n) Karmaşıklık**

Böl ve Fethet Algoritması ile maksimum elemanı bulmanın temel mantığı, diziyi sürekli ikiye bölerek en büyük elemanı belirlemektir. Bu yöntem, T(n) = 2T(n/2) + O(1) rekürans denklemi ile ifade edilir ve O(n) zaman karmaşıklığına sahiptir.

Benzer bir [algoritma](/tr/detay/algoritma-6/llms.txt) kullanarak minimum elemanı da bulmak mümkündür. Bu [sefer](/tr/detay/sefer-2/llms.txt) maksimum yerine her alt dizideki minimum eleman döndürülür ve sonuca ulaşılır.

### **Merge Sıralama Algoritması**

Merge Sıralama Algoritması, Böl ve Fethet stratejisini kullanan kararlı ve verimli bir sıralama algoritmasıdır. Algoritmanın temel [çalışma](/tr/detay/calisma/llms.txt) prensibi şu şekildedir:

1. Dizi iki eşit parçaya bölünür.
2. Her iki parça ayrı ayrı sıralanır.
3. Sıralı iki parça, birleştirme adımıyla tekrar bir araya getirilerek tam sıralı bir dizi elde edilir.

Bu [süreç](/tr/detay/surec-2/llms.txt), dizinin tek elemanlı alt parçalara ayrılmasına kadar devam eder ve daha sonra parçalar sıralanarak birleştirilir.

#### **Merge Sıralama Algoritmasının Çalışma Mantığı**

Merge Sıralama Algoritması şu adımları takip etmektedir:

1. **Bölme Aşaması:**
    1. Dizi, ortadan ikiye bölünür.
    2. Bu işlem, dizi tamamen bölünene kadar devam eder.
2. **Çözme Aşaması:**
    1. Tek elemanlı diziler doğal olarak sıralıdır.
    2. Rekürsif (özyineleme) çağrılar tamamlandığında, sıralama işlemi başlar.
3. **Birleştirme Aşaması:**
    1. İki sıralı alt dizi, karşılaştırmalı olarak birleştirilir.
    2. Daha küçük elemanlar önce alınarak sıralı bir yapı oluşturulur.

![Image](https://cdn.kureansiklopedi.com/media/uploads/2025/02/22/hodAfIPWnyE7mPltSY9E2l6VfH2obaB4.png)
*Merge Sıralama Algoritması adımları örneği*

#### **Merge Sıralama Algoritması C++ Kodu**

#### **Merge Sıralama Algoritmasının Zaman ve Uzay Karmaşıklığı**

Merge Sıralama Algoritmasının en [önemli](/tr/detay/onemli-0325c/llms.txt) özelliklerinden biri, her durumda O(nlogn) zaman karmaşıklığına sahip olmasıdır.

- **En iyi durum (Best Case):** O(n log n)
- **Ortalama durum (Average Case):** O(n log n)
- **En kötü durum (Worst Case):** O(n log n)

Uzay karmaşıklığı ise O(n) olup, birleştirme aşamasında ek bellek kullanımı gerektirir. Bu nedenle, Merge Sıralama Algoritması genellikle dahili (in-place) sıralama gerektirmeyen büyük [veri](/tr/detay/veri-2/llms.txt) kümeleri için uygundur.

#### **Merge Sıralama Algoritmasının Zaman Karmaşıklığı Neden O(NlogN)?**

Merge Sıralama Algoritması, Böl ve Fethet prensibiyle çalışan bir sıralama algoritmasıdır. Algoritmanın zaman karmaşıklığını [anlamak](/tr/detay/anlamak-751178/llms.txt) için iki temel [aşama](/tr/detay/asama-750088/llms.txt) incelenmelidir.

1. Bölme Aşaması (Divide)
2. Birleştirme Aşaması (Merge)

##### **1. Bölme Aşaması (Divide) - O(log N)**

Merge Sıralama Algoritması, her adımda diziyi ikiye bölerek küçük parçalara ayırır.

- İlk aşamada dizimiz N elemanlıdır.
- Sonraki aşamada ikiye bölünerek N/2 büyüklüğünde 2 dizi oluşur.
- Daha sonra her biri N/4 elemanlı 4 diziye bölünür.

Bu süreç tek bir eleman kalana kadar devam eder. Bir diziyi sürekli ikiye bölündüğünde bu işlem logN derinliğine ulaşır.

Örneğin:

Eğer dizi 8 elemanlıysa, bölme aşamaları şu şekildedir:

1. 8 eleman → 4 eleman → 2 eleman → 1 eleman (4 seviye)
2. Genel durumda: log₂(N) seviye olur

Bu nedenle, bölme aşaması O(log N) zaman alır.

##### **2. Birleştirme Aşaması (Merge) - O(N)**

Bölme işlemi tamamlandıktan sonra, her bir alt dizi sıralanarak birleştirilir.

- İlk aşamada tek tek sıralı olan elemanlar birleştirilir → O(N) sürede yapılır.
- İkinci aşamada daha büyük diziler birleştirilir, yine toplam O(N) işlem yapılır.

Tüm seviyelerde toplam O(N) işlem yapılır.

#### **Merge Sort’un Avantajları ve Dezavantajları**

##### **Avantajları**

- **Kararlıdır (Stable Sorting):** Aynı değerlere sahip elemanlar sıralama sonrası da aynı relatif konumlarını korur.
- **Büyük veri kümeleri için uygundur:** Performansı her durumda O(n log n) olduğundan, büyük veri kümelerinde kararlı bir performans sunar.
- **Bağımsız alt problemlere bölünebilir:** Paralel hesaplamalar için uygundur.

##### **Dezavantajları**

- **Ek bellek kullanımı:** Yardımcı diziler kullandığından, O(n) ek bellek gereksinimi vardır.
- **Küçük veri kümelerinde verimsiz olabilir:** Küçük diziler için ek bellek kullanımı gerektirdiğinden, Eklemeli Sıralama (Insertion Sort) gibi algoritmalardan daha yavaş olabilir.

#### **Merge Sort’un Uygulama Alanları**

Merge Sort, büyük veri setlerinde ve kararlı sıralama gerektiren uygulamalarda [yaygın](/tr/detay/yaygin-748456/llms.txt) olarak kullanılır:

- Veritabanı sıralama işlemleri
- Dosya sıralama ve büyük veri işleme
- Paralel hesaplamalar ve çok iş parçacıklı sistemler
- Bağlı listeler üzerinde sıralama işlemleri

<!-- CONTEXT: Academic Sources and References for "Böl ve Fethet Algoritması : Merge Sort" -->

## Academic Sources and References

1. C++ Reference. (n.d.). std::vector . Erişim: https://cplusplus.com/reference/vector (Vektör kütüphanesi fonksiyonları ve kullanımı)
2. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to Algorithms (3rd ed.). The MIT Press. Syf. 30-39
3. Dasgupta, S., Papadimitriou, C. H., & Vazirani, U. (2006). Algorithms. McGraw-Hill. Syf. 54-57
4. GeeksforGeeks. (n.d.). Merge Sort Algorithm. Erişim: https://www.geeksforgeeks.org/merge-sort/
5. GeeksforGeeks. (n.d.). Introduction to Divide and Conquer Algorithm. Erişim
6. Sedgewick, R., & Wayne, K. (2011). Algorithms (4th ed.). Addison-Wesley. Syf. 270-280
7. Stanford University Lecture Notes. (n.d.). Sorting and Divide & Conquer Algorithms. Erişim. Syf. 20-70