Algoritma ve Veri Yapıları Rehberi

Konuyu başlatankyr karaca·
Yanıt
0
Görüntülenme
3
Oy
2
Son yanıt
Henüz yok
3 görüntülenme

Algoritma ve Veri Yapıları Rehberi

Yazılım geliştirme süreçlerinde verimliliği belirleyen iki temel unsur vardır: Veriyi nasıl sakladığınız (Veri Yapıları) ve bu veriyi nasıl işlediğiniz (Algoritmalar). Bu döküman, temel kavramları ve kullanım alanlarını özetlemektedir.

1. Veri Yapıları

Veri yapısı, verilerin bilgisayar ortamında etkin bir şekilde işlenebilmesi için organize edilmesini sağlayan, verilerin birbirleriyle olan ilişkilerini ve bu veriler üzerinde gerçekleştirilecek operasyonları (ekleme, silme, arama, güncelleme) tanımlayan özelleştirilmiş bir formattır. Yazılım dünyasında algoritma "nasıl yapılacağını" belirlerken, veri yapısı bu sürecin "ne üzerinde" ve "hangi düzenle" yapılacağını belirleyen temel taşıdır.

Diziler (Arrays) Verilerin bellekte bitişik bloklar halinde tutulduğu en temel yapıdır.

  • Çalışma Biçimi: Elemanlara indeks numarası (0, 1, 2...) üzerinden erişilir.

  • Güçlü Yönü: İndeks biliniyorsa veriye erişim hızı sabittir ve çok hızlıdır.

  • Zayıf Yönü: Boyutu sabittir. Dizinin ortasına eleman eklemek, diğer tüm elemanların kaydırılmasını gerektirdiği için maliyetlidir.

Bağlı Listeler (Linked Lists) Düğüm adı verilen yapıların birbirine adreslerle (pointer) bağlanmasıyla oluşur.

  • Çalışma Biçimi: Her düğüm veriyi ve bir sonraki düğümün bellek adresini taşır.

  • Güçlü Yönü: Dinamik boyuta sahiptir. Bellekte boş yer olduğu sürece genişleyebilir; eleman ekleme ve çıkarma işlemleri hızlıdır.

  • Zayıf Yönü: Bir elemana ulaşmak için listenin başından başlayarak sırayla ilerlemek gerekir.

Yığınlar (Stacks) "Son Giren İlk Çıkar" (LIFO) kuralına dayanan doğrusal yapıdır.

  • Çalışma Biçimi: Veri ekleme (push) ve çıkarma (pop) işlemleri sadece yapının en üstünden yapılır.

  • Örnek: Yazılımlardaki geri al (undo) fonksiyonları.

Kuyruklar (Queues) "İlk Giren İlk Çıkar" (FIFO) kuralına göre çalışır.

  • Çalışma Biçimi: Veri kuyruğun sonundan eklenir, başından çıkarılır.

  • Örnek: Yazıcıya gönderilen işlerin sıraya alınması.

2. Algoritmalar

Algoritma, belirli bir başlangıç durumundan (girdi) yola çıkarak, önceden tanımlanmış, mantıksal ve kesin adımları takip ederek belirli bir bitiş durumuna (çıktı) ulaşmayı sağlayan sonlu işlemler kümesidir. Sadece bilgisayar bilimlerinde değil, matematiğin ve mantığın her alanında karşılaşılan bu süreç; karmaşık problemleri yönetilebilir, tekrarlanabilir ve ölçülebilir alt adımlara indirgeme sanatıdır.

Arama Algoritmaları

Doğrusal Arama (Linear Search): Listenin başından sonuna kadar her elemanı sırayla kontrol eder. Veri miktarı arttıkça işlem süresi de aynı oranda artar.

  • İkili Arama (Binary Search): Sadece sıralı dizilerde çalışır. Her adımda veri setini ikiye bölerek aranan değeri bulmaya çalışır. Çok büyük veri setlerinde bile son derece hızlıdır.

Sıralama Algoritmaları

Kabarcık Sıralaması (Bubble Sort): Komşu elemanları karşılaştırıp yer değiştirerek en büyük elemanı sona taşır. Eğitim amaçlıdır, büyük verilerde verimsizdir.

  • O(1) - Sabit: Veri miktarından bağımsız, her zaman aynı sürede biter. (Örn: Diziden eleman okuma)

  • O(log n) - Logaritmik: Veri miktarı katlanarak artsa bile işlem süresi çok az artar. (Örn: İkili Arama)

  • O(n) - Doğrusal: Veri miktarı ile süre doğru orantılıdır. (Örn: Doğrusal Arama)

  • O(n²) - Karesel: İç içe iki döngü demektir; veri miktarı arttıkça performans hızla düşer. (Örn: Kabarcık Sıralaması)

0 yanıt3

Konuyu Yanıtla

Markdown destekler · Alıntı, kod, liste kullanabilirsiniz

Konuyu yanıtlamak için giriş yapmalısınız.

Bu konuda yer alanlar

Bu gönderinin yazarı ve yorum yazan üyeler (yalnızca bu konu).