Şirketler
Yapay Zeka AkademiVideo EğitimlerEtkinliklerTeknik Testlerİş İlanlarıKomünite
Big O Notasyonu Nedir? Algoritma Karmaşıklığı Nasıl Hesaplanır?

Big O Notasyonu Nedir? Algoritma Karmaşıklığı Nasıl Hesaplanır?

Big O notasyonu nedir, nasıl hesaplanır? Algoritma karmaşıklığı türlerini örneklerle keşfet.
Techcareer.net
Techcareer.net
●
15.10.2026
●
6 Dakika

Big O notasyonu, bir algoritmanın girdi boyutu arttıkça ne kadar işlem yaptığını analiz etmek için kullanılır. Yazılım geliştiricilerin algoritmaları karşılaştırmasına ve daha verimli çözümler üretmesine yardımcı olur. Peki Big O notasyonu nedir, nasıl hesaplanır ve en sık kullanılan karmaşıklık türleri nelerdir?

Big O Notasyonu Nedir?

Big O notasyonu, bir algoritmanın çalışma süresinin veya kaynak kullanımının girdi boyutuyla nasıl değiştiğini ifade eden matematiksel bir gösterimdir. Algoritmanın kaç saniyede çalıştığını doğrudan ölçmez. Bunun yerine, girdi büyüdükçe işlem sayısının nasıl arttığına odaklanır.

Örneğin, bir listedeki belirli bir sayıyı bulmak istediğini düşün. Liste küçük olduğunda farklı arama yöntemleri arasındaki performans farkı belirgin olmayabilir. Ancak listedeki eleman sayısı binlere veya milyonlara ulaştığında algoritmanın karmaşıklığı önemli hâle gelir.

Big O notasyonu, bu tür durumlarda hangi algoritmanın daha iyi ölçeklendiğini anlamayı sağlar. Bu nedenle algoritma analizi, veri yapıları ve yazılım performansı çalışmalarında sıkça kullanılır.

Algoritma Karmaşıklığı Nedir?

Algoritma karmaşıklığı, bir algoritmanın çalışırken ihtiyaç duyduğu işlem gücünü ve belleği girdi boyutuna göre değerlendirmektir. Temel olarak zaman karmaşıklığı ve alan karmaşıklığı olmak üzere iki farklı açıdan incelenir.

Zaman karmaşıklığı, girdi büyüdükçe algoritmanın gerçekleştirdiği işlem miktarının nasıl değiştiğini ifade eder. Alan karmaşıklığı ise algoritmanın çalışması sırasında ihtiyaç duyduğu bellek miktarının girdi boyutuyla nasıl değiştiğini inceler.

Örneğin, bir listedeki elemanları sırayla kontrol eden bir algoritmanın zaman karmaşıklığı O(n) olabilir. Listeyi kopyalayarak yeni bir liste oluşturan bir algoritma ise ek olarak O(n) alan kullanabilir.

Bu iki ölçüt, özellikle büyük veri kümeleriyle çalışan uygulamalarda algoritma seçiminde belirleyici olabilir.

Big O Notasyonu Ne İşe Yarar?

Big O notasyonu, farklı algoritmaların performansını ortak bir ölçüt üzerinden karşılaştırmaya yardımcı olur. Böylece yalnızca belirli bir bilgisayarda yapılan testlere bağlı kalmadan, algoritmaların büyük girdiler karşısında nasıl davranabileceği değerlendirilebilir.

Big O notasyonunun yazılım geliştirme sürecindeki başlıca kullanım alanları şunlardır:

  • Algoritma karşılaştırma: Aynı problemi çözen farklı algoritmaların büyüme hızlarını karşılaştırmayı sağlar.
  • Performans iyileştirme: İşlem sayısının gereksiz yere artmasına neden olan kod bölümlerini belirlemeye yardımcı olur.
  • Veri yapısı seçimi: Dizi, bağlı liste, hash tablosu ve ağaç gibi veri yapılarının farklı işlemlerdeki maliyetlerini değerlendirmeyi kolaylaştırır.
  • Ölçeklenebilirlik analizi: Bir uygulamanın daha büyük veri kümeleriyle çalışırken nasıl bir performans gösterebileceğini anlamayı destekler.

Bununla birlikte Big O, tek başına gerçek çalışma süresini göstermez. Donanım, programlama dili, uygulama ayrıntıları ve kullanılan veri yapıları da performansı etkileyebilir.

Big O Notasyonu Nasıl Hesaplanır?

Big O notasyonunu hesaplamak için öncelikle algoritmanın hangi işlemleri gerçekleştirdiğini ve bu işlemlerin girdi boyutuna bağlı olarak kaç kez tekrarlandığını incelemek gerekir. Burada girdi boyutu genellikle n harfiyle gösterilir.

Hesaplama yaparken sabit katsayılar ve daha düşük dereceli terimler genellikle göz ardı edilir. Çünkü Big O, özellikle girdi boyutu büyüdüğünde baskın hâle gelen büyüme davranışını ifade eder.

Bir algoritmanın karmaşıklığını belirlemek için şu adımlar izlenebilir:

  • Girdiyi belirle: Algoritmanın işlediği eleman sayısını n ile ifade et.
  • İşlem sayısını incele: Döngülerin, karşılaştırmaların ve tekrarlanan işlemlerin kaç kez çalıştığını belirle.
  • Tekrarlanan işlemleri analiz et: Ardışık işlemlerin maliyetlerini topla, iç içe döngülerde tekrar sayılarını değerlendir.
  • Baskın terimi bul: Girdi büyüdükçe en fazla etkisi olan terimi belirle.
  • Sabitleri çıkar: Sabit çarpanları ve baskın olmayan düşük dereceli terimleri sadeleştir.

Örneğin, bir algoritmanın işlem sayısı 3n + 5 şeklinde ifade ediliyorsa karmaşıklığı O(n) olur. Çünkü n büyüdükçe doğrusal terim baskın hâle gelir.

Benzer şekilde, işlem sayısı n² + 4n + 10 olan bir algoritmanın karmaşıklığı O(n²) olarak ifade edilir.

En Sık Kullanılan Big O Karmaşıklık Türleri Nelerdir?

Algoritmaların büyüme davranışını anlamak için bazı temel karmaşıklık türlerini bilmek gerekir. Bu türler, algoritmanın girdi boyutu arttığında işlem sayısının nasıl değiştiğini gösterir.

O(1) – Sabit Zaman Karmaşıklığı Nedir?

O(1), sabit zaman karmaşıklığını ifade eder. Girdi boyutu artsa bile incelenen işlemin sayısı değişmez.

Örneğin, bir dizinin belirli bir indeksindeki elemana erişmek, standart dizi erişimi varsayıldığında O(1) karmaşıklığındadır. Dizide 10 veya 10.000 eleman bulunması, indeks üzerinden erişim işleminin temel maliyetini değiştirmez.

O(log n) – Logaritmik Zaman Karmaşıklığı Nedir?

O(log n), girdi büyüdükçe işlem sayısının yavaş arttığı karmaşıklık türüdür. Genellikle her adımda arama alanını belirli bir oranda küçülten algoritmalarda görülür.

İkili arama (binary search), sıralı bir dizide arama alanını her adımda yaklaşık yarıya indirir. Bu nedenle zaman karmaşıklığı O(log n) olur.

O(n) – Doğrusal Zaman Karmaşıklığı Nedir?

O(n), işlem sayısının girdi boyutuyla doğru orantılı olarak arttığını ifade eder. Eleman sayısı iki katına çıktığında işlem sayısı da yaklaşık iki katına çıkabilir.

Bir listedeki tüm elemanları sırayla kontrol etmek, doğrusal zaman karmaşıklığına örnektir. Her elemanın en fazla bir kez incelendiği bu tür işlemler O(n) olarak değerlendirilir.

O(n log n) – Doğrusal Logaritmik Karmaşıklık Nedir?

O(n log n), birçok verimli sıralama algoritmasında görülen karmaşıklık türüdür. Hem elemanların işlenmesini hem de problemin daha küçük parçalara ayrılmasını içeren işlemlerde ortaya çıkabilir.

Merge sort (birleştirmeli sıralama), bu karmaşıklığa sahip yaygın algoritmalardan biridir. Büyük veri kümelerini sıralarken sık kullanılan yöntemler arasında yer alır.

O(n²) – Karesel Zaman Karmaşıklığı Nedir?

O(n²), işlem sayısının girdi boyutunun karesiyle orantılı olarak arttığını ifade eder. Genellikle her eleman için tüm elemanları yeniden inceleyen iç içe döngülerde görülür.

Örneğin, n elemanlı bir liste üzerinde iki iç içe döngü çalıştırıldığında yaklaşık n² işlem yapılabilir. Bu nedenle girdi boyutu büyüdükçe karesel karmaşıklığa sahip algoritmaların maliyeti hızla artabilir.

O(2ⁿ) – Üstel Zaman Karmaşıklığı Nedir?

O(2ⁿ), girdi boyutu arttıkça işlem sayısının çok hızlı büyüyebildiği bir karmaşıklık türüdür. Özellikle her adımda birden fazla olasılığı ayrı ayrı değerlendiren bazı algoritmalarda ortaya çıkar.

Bazı kaba kuvvet çözümleri ve olası kombinasyonların tamamını inceleyen yöntemler bu tür büyüme gösterebilir. Bu nedenle üstel karmaşıklığa sahip algoritmaların büyük girdilerde kullanılması zorlaşabilir.

O(n!) – Faktöriyel Zaman Karmaşıklığı Nedir?

O(n!), n elemanın bütün olası sıralamalarını değerlendiren algoritmalarda karşılaşılabilen çok hızlı büyüyen bir karmaşıklıktır. Girdi boyutu arttıkça değerlendirilecek olasılıkların sayısı katlanarak yükselir.

Örneğin, küçük bir kümedeki tüm eleman sıralamalarını deneyen bir yaklaşım faktöriyel karmaşıklığa sahip olabilir. Bu tür yöntemler genellikle küçük girdilerle sınırlı kalır.

Big O Notasyonu ile Omega ve Theta Notasyonu Arasındaki Fark Nedir?

Algoritma analizinde Big O dışında Omega ve Theta notasyonları da kullanılır. Bu gösterimler, algoritmanın büyüme davranışını farklı açılardan tanımlamaya yardımcı olur.

  • Big O – O(g(n)): Algoritmanın büyümesi için asimptotik bir üst sınır ifade eder.
  • Omega – Ω(g(n)): Algoritmanın büyümesi için asimptotik bir alt sınır ifade eder.
  • Theta – Θ(g(n)): Algoritmanın büyümesini hem üstten hem alttan aynı mertebede sınırlar.

Bu notasyonlar, algoritmaların teorik analizinde farklı amaçlara hizmet eder. Günlük yazılım geliştirme çalışmalarında Big O daha sık kullanılsa da diğer gösterimleri bilmek algoritmaların davranışını daha kapsamlı değerlendirmeyi sağlar.

Big O Notasyonu Hesaplanırken Nelere Dikkat Edilmelidir?

Big O notasyonu hesaplanırken kodun yalnızca kaç döngü içerdiğine bakmak yeterli değildir. Döngülerin kaç kez çalıştığı, iç içe olup olmadığı, her adımda yapılan işlemler ve kullanılan veri yapıları birlikte değerlendirilmelidir.

Örneğin, art arda çalışan iki ayrı O(n) döngünün toplam karmaşıklığı O(2n) yerine O(n) olarak ifade edilir. Buna karşılık, birbirinin içinde çalışan ve her biri n kez tekrarlanan iki döngü çoğunlukla O(n²) karmaşıklığına sahiptir.

Ayrıca aynı algoritmanın en iyi, ortalama ve en kötü durumları farklı işlem sayıları ortaya çıkarabilir. Örneğin doğrusal aramada aranan eleman ilk sıradaysa tek kontrol yeterli olabilir. Eleman son sıradaysa veya listede bulunmuyorsa tüm liste incelenebilir. Bu nedenle analiz yapılırken hangi durumun değerlendirildiği belirtilmelidir.

Big O notasyonu, algoritmaların performansını anlamak ve doğru çözümü seçmek için önemli bir araçtır. Karmaşıklık türlerini öğrenmek, kodun büyük girdilerde nasıl davranacağını öngörmeyi kolaylaştırır. Daha verimli yazılımlar geliştirmek için algoritma analiziyle birlikte veri yapıları ve gerçek performans testleri de değerlendirilmelidir.


Daha Fazla

Refactoring Nedir? Kodunuzu Ne Zaman ve Nasıl Yeniden Düzenlemelisiniz?

Refactoring Nedir? Kodunuzu Ne Zaman ve Nasıl Yeniden Düzenlemelisiniz?

Refactoring nedir, ne zaman yapılır? Kod kalitesini artıran teknikleri ve uygulama adımlarını öğren.
15.10.2026
●
5 Dakika
TECHCAREER
Hakkımızda
techcareer.net
Yapay Zeka Yetkinlik Akademisi
SOSYAL MEDYA
LinkedinTwitterInstagramYoutubeFacebook

tr

en

Tüm hakları saklıdır
© Copyright 2026
support@techcareer.net
İşkur logo

Kariyer.net Elektronik Yayıncılık ve İletişim Hizmetleri A.Ş. Özel İstihdam Bürosu olarak 31/08/2024 – 30/08/2027 tarihleri arasında faaliyette bulunmak üzere, Türkiye İş Kurumu tarafından 26/07/2024 tarih ve 16398069 sayılı karar uyarınca 170 nolu belge ile faaliyet göstermektedir. 4904 sayılı kanun uyarınca iş arayanlardan ücret alınmayacak ve menfaat temin edilmeyecektir. Şikayetleriniz için aşağıdaki telefon numaralarına başvurabilirsiniz. Türkiye İş Kurumu İstanbul İl Müdürlüğü: 0212 249 29 87 Türkiye iş Kurumu İstanbul Çalışma ve İş Kurumu Ümraniye Hizmet Merkezi : 0216 523 90 26