Mini Sözlük
Algoritma: Belirli bir problemi çözmek için tasarlanmış, sonlu sayıda adımdan oluşan talimatlar bütünü.
Tasarım Tekniği: Algoritma geliştirme sürecinde kullanılan sistematik yöntemler; örneğin, böl & yönet, açgözlü yaklaşım, dinamik programlama.
Sözde Kod (Pseudocode): Programlama dillerine özgü sözdizimi kurallarına tam bağlı olmadan, algoritmaların adım adım ifade edilmesini sağlayan yarı-formal gösterim biçimi.
Akış Şeması: Algoritmaların görselleştirilerek ifade edilmesini sağlayan grafiksel gösterim yöntemi.
Zaman Karmaşıklığı: Algoritmanın verilen girdiye bağlı olarak ne kadar sürede çalıştığını ölçen analiz yöntemi.
Alan Karmaşıklığı: Algoritmanın çalışması sırasında ihtiyaç duyduğu bellek miktarını ölçen analiz yöntemi.
Problem Çözme: Algoritma tasarım sürecinin ilk adımı olup, çözülecek problemin anlaşılması ve girdilerin/çıktıların belirlenmesi süreci.
Böl & Yönet (Divide and Conquer): Problemi daha küçük alt problemlere bölerek çözmeye çalışan algoritma tasarım tekniği.
Açgözlü Algoritma (Greedy Algorithm): Her adımda en iyi görünen seçeneği tercih ederek çözüm üreten algoritma yaklaşımı.
Dinamik Programlama: Alt problemlerin çözümlerini saklayarak, tekrar hesaplamayı önleyen algoritma tasarım yöntemi.
Kaba Kuvvet (Brute Force): Tüm olası çözümleri deneyerek en iyi çözümü bulmaya çalışan algoritma tekniği.
Arama Algoritmaları: Belirli bir veri kümesi içinde istenen değeri bulmak için kullanılan algoritmalar (örneğin, doğrusal arama, ikili arama).
Sıralama Algoritmaları: Verilen veri kümesini belirli bir kritere göre sıralayan algoritmalar (örneğin, kabarcık sıralama, hızlı sıralama).
Doğruluk İspatı: Algoritmanın tüm geçerli girdiler için doğru çıktıyı ürettiğini matematiksel olarak gösterme süreci.
Özyinelemeli (Recursive) Algoritma: Bir problemi çözerken kendisini çağırarak çalışan algoritmalar.
İteratif Algoritma: Döngüler kullanarak çözüm üreten algoritmalar.
Verimlilik: Algoritmanın performansını belirleyen ölçüt; düşük zaman ve alan karmaşıklığına sahip olması hedeflenir.
Girdi (Input): Algoritmanın işleyip çözüm üreteceği veri.
Çıktı (Output): Algoritmanın girdi üzerinde işlem yaparak ürettiği sonuç.
Big-O Gösterimi: Algoritmaların en kötü durumdaki çalışma süresini ifade eden zaman karmaşıklığı notasyonu.
Çizge Algoritmaları: Çizge (graf) veri yapıları üzerinde çalışan algoritmalar; örneğin, Dijkstra ve Kruskal algoritmaları.
Hata Ayıklama: Algoritmaların beklenmeyen durumlarda nasıl davrandığını inceleyerek hataları tespit etme ve düzeltme süreci.
Özyineli Fonksiyon: Kendi kendisini çağıran fonksiyon, özellikle böl & yönet algoritmalarında sıkça kullanılır.
Veri Yapıları: Algoritmaların veri işlemesini kolaylaştıran yapılandırılmış depolama biçimleri; örneğin, diziler, bağlı listeler, yığınlar ve ağaçlar.
Tümevarım (Induction): Algoritmaların doğruluğunu ispatlamak için kullanılan matematiksel teknik.