$ ls ~/dersler
Dersler
> Sıralama Algoritmaları9 ders
Elemanları belirli bir sıraya dizen algoritmalar: basit yöntemlerden böl ve yönet yaklaşımlarına.
- 01Kabarcık SıralamasıKomşu elemanları karşılaştırarak diziyi sıralayan basit algoritma.
- 02Seçmeli SıralamaHer geçişte en küçük elemanı bulup başa yerleştiren sıralama algoritması.
- 03Eklemeli SıralamaHer elemanı soldaki sıralı kısımda doğru yere sokan sıralama algoritması.
- 04Birleştirmeli SıralamaDiziyi ikiye bölüp sıralı yarıları birleştiren böl ve yönet algoritması.
- 05Hızlı SıralamaBir pivot etrafında bölümleyerek sıralayan, pratikte çok hızlı böl ve yönet algoritması.
- 06Yığın Sıralaması (Heap Sort)Diziyi max-heap'e çevirip en büyüğü tekrar tekrar sona alan, ek bellek kullanmayan O(n log n) sıralama.
- 07Shell SortUzak elemanlardan başlayıp aralığı küçülterek eklemeli sıralamayı hızlandıran algoritma.
- 08Sayma Sıralaması (Counting Sort)Elemanları karşılaştırmadan, her değerden kaç tane olduğunu sayarak sıralayan doğrusal zamanlı algoritma.
- 09Taban Sıralaması (Radix Sort)Sayıları birler, onlar, yüzler basamağına göre sırayla, kararlı turlarla sıralayan algoritma.
> Veri Yapıları14 ders
Veriyi saklamanın ve düzenlemenin yolları; her birinin güçlü ve zayıf olduğu işlemler.
- 01Yığın (Stack)Son giren elemanın ilk çıktığı (LIFO) veri yapısı.
- 02Kuyruk (Queue)İlk giren elemanın ilk çıktığı (FIFO) veri yapısı.
- 03Bağlı Liste (Linked List)Elemanları işaretçilerle birbirine bağlı düğümler olarak saklayan veri yapısı.
- 04Hash TablosuAnahtarları hash fonksiyonuyla kovalara dağıtıp ortalama O(1) erişim sağlayan veri yapısı.
- 05İkili Arama Ağacı (BST)Küçük değerleri sola, büyükleri sağa yerleştirerek hızlı arama ve sıralı gezinti sağlayan ağaç.
- 06Heap (Öncelik Kuyruğu)En küçük (ya da en büyük) elemana O(1) erişim sağlayan, dizide saklanan tam ikili ağaç.
- 07Graf (Graph)Düğümler ve kenarlardan oluşan, BFS ve DFS ile gezilen veri yapısı.
- 08Çift Uçlu Kuyruk (Deque)Hem önden hem sondan O(1) ekleme ve çıkarma yapılabilen iki uçlu kuyruk.
- 09Önek Ağacı (Trie)Kelimeleri harf harf saklayan, ortak önekleri paylaşan ve önek aramalarını kelime uzunluğunda yapan ağaç.
- 10Ayrık Kümeler (Union-Find)Elemanları kümelere ayıran, iki kümeyi birleştiren ve iki elemanın aynı kümede olup olmadığını neredeyse sabit sürede söyleyen yapı.
- 11AVL AğacıHer düğümde sol ve sağ yükseklik farkını en fazla 1 tutan, rotasyonlarla kendini dengeleyen ikili arama ağacı.
- 12Red-Black AğacıDüğümleri kırmızı ve siyaha boyayarak yüksekliği O(log n) tutan, TreeMap ve std::map'in kullandığı dengeli arama ağacı.
- 13Segment TreeDizinin aralık toplamlarını tutan, hem aralık sorgusunu hem tek eleman güncellemesini O(log n)'de yapan ikili ağaç.
- 14Fenwick Tree (BIT)Tek bir dizide, en düşük bit hilesiyle önek toplamlarını ve güncellemeleri O(log n)'de yapan ikili indeksli ağaç.
> Arama Algoritmaları5 ders
Bir değeri veri içinde bulmanın yöntemleri: doğrusal aramadan ikili aramaya.
- 01Doğrusal AramaElemanları baştan sona tek tek kontrol eden en basit arama yöntemi.
- 02İkili AramaSıralı dizide arama aralığını her adımda yarıya indiren hızlı arama yöntemi.
- 03Atlamalı Arama (Jump Search)Sıralı dizide √n büyüklüğünde bloklar halinde ileri atlayıp tek bir bloğu tarayan arama.
- 04Enterpolasyon AramasıOrtaya değil, değerin olması gereken yere bakan; düzgün dağılmış veride çok hızlı arama.
- 05Üstel Arama (Exponential Search)Sınırı ikiye katlayarak aralığı bulan, sonra ikili arama yapan; başa yakın değerlerde çok hızlı arama.
> Graf Algoritmaları8 ders
Düğümler ve kenarlar üzerinde gezinme, yol ve bağlantı bulma algoritmaları.
- 01Genişlik Öncelikli Arama (BFS)Grafı başlangıçtan uzaklığa göre katman katman gezen ve ağırlıksız grafta en kısa yolu bulan algoritma.
- 02Derinlik Öncelikli Arama (DFS)Bir dalı sonuna kadar izleyip geri dönen (backtracking) graf gezme algoritması; döngü bulma ve topolojik sıralamanın temeli.
- 03Dijkstra AlgoritmasıNegatif olmayan ağırlıklı bir grafta başlangıçtan tüm düğümlere en ucuz yolları bulan açgözlü algoritma.
- 04Kruskal AlgoritmasıKenarları hafiften ağıra deneyip döngü kurmayanları alarak minimum kapsayan ağacı bulan algoritma.
- 05Prim AlgoritmasıMinimum kapsayan ağacı bir düğümden başlayıp her adımda en ucuz bağlantıyı ekleyerek büyüten algoritma.
- 06Topolojik SıralamaYönlü döngüsüz bir grafın düğümlerini her ok ileri bakacak şekilde sıralayan, bağımlılık çözmenin temel yöntemi.
- 07Bellman-Ford AlgoritmasıNegatif ağırlıklı kenarlarla da en kısa yolları bulan ve negatif döngüleri tespit eden algoritma.
- 08Floyd-Warshall AlgoritmasıTüm düğüm çiftleri arasındaki en kısa yolları bir mesafe matrisinde dinamik programlamayla hesaplayan algoritma.
> Dinamik Programlama6 ders
Problemi örtüşen alt problemlere bölüp her birini bir kez çözen teknik: memoization ve tablolar.
- 01Fibonacci ve MemoizationAynı alt problemleri tekrar tekrar çözen özyinelemeden, her değeri bir kez hesaplayan memoization ve tablo yöntemine.
- 020/1 Sırt Çantası (Knapsack)Sınırlı kapasiteli bir çantaya en yüksek toplam değeri sığdırmak için her eşyayı almak ya da almamak arasında karar veren DP tablosu.
- 03En Uzun Ortak Alt Dizi (LCS)İki dizinin sırasını koruyarak paylaştığı en uzun alt diziyi bir DP tablosuyla bulan algoritma; diff ve DNA hizalamanın temeli.
- 04Düzenleme Mesafesi (Edit Distance)Bir kelimeyi diğerine çevirmek için gereken en az harf değiştirme, silme ve ekleme sayısını bulan Levenshtein algoritması.
- 05Bozuk Para Problemi (Coin Change)Bir tutarı en az sayıda parayla ödemenin yolunu DP ile bulan ve açgözlü yöntemin yanıldığı durumları gösteren problem.
- 06En Uzun Artan Alt Dizi (LIS)Bir sayı dizisinin kesin artan en uzun alt dizisini O(n²) DP ile bulan algoritma; O(n log n) sürümüne de giriş.
> Geri İzleme (Backtracking)4 ders
Çözümü adım adım kurup çıkmazda son seçimi geri alarak arama: yerleşim, alt küme ve sıralama problemleri.
- 01N-Vezir Problemin veziri birbirini tehdit etmeyecek şekilde tahtaya yerleştiren, çıkmazda geri dönen klasik geri izleme problemi.
- 02Alt Kümeleri ÜretmekHer eleman için al/alma kararıyla bir kümenin tüm 2ⁿ alt kümesini üreten geri izleme kalıbı.
- 03Permütasyonları ÜretmekHer konuma henüz kullanılmamış bir eleman seçip dönüşte seçimi geri alarak tüm n! sıralamayı üreten geri izleme.
- 04Sudoku ÇözücüBoş hücrelere rakam deneyip kural bozulunca geri dönen, geri izlemenin en tanıdık örneği.
> Dizgi Algoritmaları3 ders
Metin içinde desen aramanın yöntemleri: düz aramadan önek tablolarına ve kayan hash'lere.
- 01Düz Desen AramaDeseni metnin her konumuna yerleştirip harf harf karşılaştıran en basit desen arama yöntemi.
- 02KMP AlgoritmasıDesenin önek tablosunu kullanarak metinde hiç geri dönmeden O(n + m) zamanda arayan Knuth-Morris-Pratt algoritması.
- 03Rabin-Karp AlgoritmasıDesenin ve kayan pencerenin hash değerlerini karşılaştıran, harflere yalnızca hash'ler eşitse bakan desen arama algoritması.
> Açgözlü Algoritmalar3 ders
Her adımda o an en iyi görünen seçimi yapan algoritmalar: ne zaman doğru, ne zaman yanıltıcı?
- 01Etkinlik SeçimiÇakışmayan en fazla etkinliği "en erken biten önce" kuralıyla seçen klasik açgözlü algoritma.
- 02Kesirli Sırt ÇantasıBölünebilen eşyalarla çantayı birim ağırlık başına değere göre dolduran ve en iyi sonucu veren açgözlü algoritma.
- 03Huffman KodlamasıSık geçen harflere kısa kodlar veren, en hafif iki ağacı tekrar tekrar birleştiren açgözlü sıkıştırma algoritması.