Algoritma Kütüphanesi

Tüm algoritma kategorilerini keşfedin, interaktif görselleştirmeler ve detaylı açıklamalarla algoritmaların nasıl çalıştığını öğrenin.

Algoritma Seçimi Rehberi

İhtiyacınıza uygun algoritma seçmek, sorununuzun verimli çözümü için kritik öneme sahiptir. İşte algoritma seçerken göz önünde bulundurmanız gereken bazı faktörler:

  • Problem Tipi: Sıralama, arama, optimizasyon gibi temel problem tipiniz nedir?
  • Veri Boyutu: Çok büyük veri kümeleri için asimptotik karmaşıklığı daha düşük algoritmalar tercih edilmelidir.
  • Zaman ve Alan Kısıtlamaları: Hızlı çalışma mı yoksa düşük bellek kullanımı mı daha önemli?
  • İşlem Tipi: Dinamik veri mi yoksa statik veri mi işlenecek?
  • Uygulama Ortamı: Algoritmanın çalışacağı platform veya sistem özellikleri.

Bu platformda sunulan algoritmalar, çeşitli problem türlerine yönelik çözümleri ve bunların uygulanma şekillerini göstermektedir. Her algoritmanın avantajları, dezavantajları ve karmaşıklık analizleri detaylı olarak incelenmiştir.

Sıralama Algoritmaları

Verileri belirli bir düzende sıralamak için kullanılan algoritmalar

İçerdiği Algoritmalar:

  • Bubble Sort
  • Selection Sort
  • Insertion Sort
  • +2 daha...

Arama Algoritmaları

Veri yapılarında eleman bulmak için kullanılan algoritmalar

İçerdiği Algoritmalar:

  • Linear Search
  • Binary Search

Graf Algoritmaları

Graf veri yapıları üzerinde işlem yapan algoritmalar

İçerdiği Algoritmalar:

  • Breadth-First Search (BFS)
  • Depth-First Search (DFS)
  • Dijkstra's Algorithm
  • +1 daha...

Veri Yapıları

Verileri organize etme ve saklama yöntemleri

İçerdiği Algoritmalar:

  • Linked List
  • Stack
  • Queue
  • +2 daha...

Dinamik Programlama

Karmaşık problemleri alt problemlere bölerek çözen yöntemler

İçerdiği Algoritmalar:

  • Fibonacci
  • Knapsack Problem
  • Longest Common Subsequence

Geri İzleme Algoritmaları

Bir problem için olası tüm çözümleri adım adım keşfeden ve geçersiz çözüm yollarını eleme yöntemiyle ilerleyen bir algoritma stratejisi

İçerdiği Algoritmalar:

  • N-Queens Problem
  • Subset Sum Problem

Açgözlü Algoritmalar

Her adımda en iyi görünen seçimi yaparak global optimum çözüm arayan problem çözme yaklaşımı

İçerdiği Algoritmalar:

  • Fractional Knapsack
  • Huffman Coding

Böl ve Fethet Algoritmaları

Problemi aynı tipte daha küçük alt problemlere bölen, çözen ve sonuçları birleştiren algoritma tasarım yaklaşımı

İçerdiği Algoritmalar:

  • Merge Sort
  • Quick Sort
  • Binary Search

Metin İşleme Algoritmaları

String veriler üzerinde arama, eşleştirme, düzenleme ve manipülasyon yapmak için kullanılan özel algoritmalar

İçerdiği Algoritmalar:

  • Rabin-Karp Algorithm
  • KMP Algorithm

Matematiksel Algoritmalar

Matematiksel problemleri çözmek ve matematiksel hesaplamalar yapmak için kullanılan algoritmalar

İçerdiği Algoritmalar:

  • GCD (Euclidean Algorithm)
  • Sieve of Eratosthenes

Kümeleme Algoritmaları

Benzer özelliklere sahip verileri gruplandırmak için kullanılan gözetimsiz öğrenme yöntemleri

İçerdiği Algoritmalar:

  • K-Means
  • Hierarchical Clustering

Optimizasyon Algoritmaları

Belirli bir problem için olası çözümler arasından en iyi çözümü bulmayı amaçlayan algoritmalar

İçerdiği Algoritmalar:

  • Simulated Annealing
  • Genetic Algorithms

Diğer Önemli Algoritmalar

Çeşitli problem alanlarında kullanılan, farklı kategorilere tam olarak sığmayan ancak yazılım geliştirmede kritik önem taşıyan algoritmalar

İçerdiği Algoritmalar:

  • Bloom Filter
  • Reservoir Sampling

İleri Seviye Algoritmalar

Karmaşık problemleri çözmek için optimize edilmiş, özel durumlara yönelik geliştirilmiş algoritmalar

İçerdiği Algoritmalar:

  • Floyd's Cycle-Finding
  • Topological Sort

Tüm Algoritmalar

Sıralama Algoritmaları

Bubble Sort

Kolay

Her adımda komşu elemanları karşılaştırarak ve gerekirse değiştirerek çalışan basit bir sıralama algoritması.

Selection Sort

Kolay

Her adımda dizideki en küçük elemanı bulup uygun konuma yerleştiren algoritma.

Insertion Sort

Kolay

Elemanları teker teker alıp sıralı alt listeye uygun konuma yerleştiren algoritma.

Merge Sort

Orta

Böl ve fethet yaklaşımını kullanarak diziyi parçalara ayırıp sıralayarak birleştiren algorima.

Quick Sort

Orta

Pivot eleman seçerek diziyi bölen ve alt dizileri sıralayan hızlı bir algoritma.

Arama Algoritmaları

Linear Search

Kolay

Bir dizide elemanları sırayla kontrol ederek arama yapan en basit algoritma.

Binary Search

Orta

Sıralı dizilerde, her adımda arama alanını yarıya bölerek logaritmik zamanda arama yapan algoritma.

Graf Algoritmaları

Breadth-First Search (BFS)

Orta

Grafı seviye seviye dolaşan, en kısa yolu bulma ve seviye tabanlı işlemlerde kullanılan algortima.

Depth-First Search (DFS)

Orta

Grafı derinlemesine dolaşan, bağlantılı bileşenler ve çevrim tespitinde kullanılan algoritma.

Dijkstra's Algorithm

Zor

Bir düğümden diğer tüm düğümlere olan en kısa yolları bulan, ağırlıklı graflarda kullanılan algoritma.

Bellman-Ford Algorithm

Zor

Negatif ağırlıklı kenarları olan graflarda en kısa yolları bulan ve negatif çevrimleri tespit eden algoritma.

Veri Yapıları

Linked List

Kolay

Her düğümün veri ve bir sonraki düğüme referans içerdiği dinamik bir veri yapısı.

Stack

Kolay

Son giren ilk çıkar (LIFO) prensibiyle çalışan, yalnızca en üstteki elemana erişim sağlayan veri yapısı.

Queue

Kolay

İlk giren ilk çıkar (FIFO) prensibiyle çalışan, elemanları sırayla işleyen veri yapısı.

Binary Search Tree

Orta

Her düğümün en fazla iki çocuğa sahip olduğu, hızlı arama, ekleme ve silme işlemlerine olanak tanıyan hiyerarşik yapı.

Hash Table

Orta

Anahtarları değerlere eşleyen, sabit zamanlı erişim sağlayan veri yapısı.

Dinamik Programlama

Fibonacci

Kolay

Her sayının kendinden önceki iki sayının toplamı olduğu, memoization ile verimli hesaplanabilen dizi.

Knapsack Problem

Orta

Belirli bir ağırlık kapasitesindeki çantaya, maksimum değere sahip nesneleri yerleştirme problemi.

Longest Common Subsequence

Orta

İki dizi arasındaki en uzun ortak alt diziyi bulan algoritma.

Geri İzleme Algoritmaları

N-Queens Problem

Orta

N adet veziri, birbirlerini tehdit etmeyecek şekilde N×N boyutundaki satranç tahtasına yerleştirme problemi.

Subset Sum Problem

Orta

Bir dizi içerisindeki sayıların alt kümelerinin toplamının belirli bir değere eşit olup olmadığını bulan algoritma.

Açgözlü Algoritmalar

Fractional Knapsack

Orta

Nesneleri ağırlık/değer oranına göre sıralayarak çantaya yerleştiren, nesnelerin bölünebilir olduğu çanta problemi çözümü.

Huffman Coding

Zor

Karakterlerin frekanslarına göre değişken uzunluklu kodlar atayan, veri sıkıştırma için kullanılan algoritma.

Böl ve Fethet Algoritmaları

Merge Sort

Orta

Diziyi iki parçaya bölen, her parçayı sıralayan ve sonra birleştiren etkili bir sıralama algoritması.

Quick Sort

Orta

Pivot seçerek diziyi bölen ve her bölümü tekrar eden şekilde sıralayan hızlı sıralama algoritması.

Binary Search

Orta

Sıralı dizilerde, her adımda arama alanını yarıya indirerek logaritmik zamanda arama yapan algoritma.

Metin İşleme Algoritmaları

Rabin-Karp Algorithm

Orta

Metin içerisinde desen aramak için hash değerlerini kullanan string eşleştirme algoritması.

KMP Algorithm

Zor

Önek tablosu kullanarak metinde desen aramayı verimli hale getiren string eşleştirme algoritması.

Matematiksel Algoritmalar

GCD (Euclidean Algorithm)

Kolay

İki veya daha fazla sayının en büyük ortak bölenini bulan etkili bir algoritma.

Sieve of Eratosthenes

Kolay

Belirli bir sayıya kadar olan tüm asal sayıları hızlı bir şekilde bulan algoritma.

Kümeleme Algoritmaları

K-Means

Orta

Verileri K adet kümeye ayıran, her kümenin merkezi etrafında gruplandıran popüler bir kümeleme algoritması.

Hierarchical Clustering

Orta

Verileri hiyerarşik bir ağaç yapısında gruplayan, farklı seviyelerde kümeleme imkanı sunan algoritma.

Optimizasyon Algoritmaları

Simulated Annealing

Zor

Fiziksel tavlama işlemini taklit eden, global optimum çözüm arayan bir metasezgisel yöntem.

Genetic Algorithms

Zor

Doğal evrim süreçlerini taklit eden, popülasyon tabanlı meta-sezgisel optimizasyon algoritması.

Diğer Önemli Algoritmalar

Bloom Filter

Orta

Bir elemanın bir kümede bulunup bulunmadığını hızlı şekilde kontrol eden, olasılıksal veri yapısı.

Reservoir Sampling

Orta

Bilinmeyen boyuttaki veri akışından rastgele örneklem almaya yarayan algoritma.

İleri Seviye Algoritmalar

Floyd's Cycle-Finding

Zor

Bağlı listelerde döngüleri bulmak için kullanılan verimli bir algoritma. 'Tortoise and Hare' olarak da bilinir.

Topological Sort

Zor

Yönlü asiklik graflarda (DAG) düğümleri bağımlılıklarına göre sıralayan algoritma.