Veri yapısı,
verinin hafızada saklanma şekli ve organizasyonu olarak tanımlanabilir.
Veriler, veri tiplerine göre hafızada farklı şekillerde tutulabilirler. Veriye
farklı yollardan ulaşma isteği farklı organizasyonların yapılmasını beraberinde
getirmektedir.
Organizasyonun
yapısına göre veriye ulaşma yolu da değişir. Veriler içinden sadece ortalamanın
bulunması gereken bir durumda bilgilerin sıralı olması önemli değildir. Ancak
arama yapılmak istendiğinde verilerin sıralı olması gereklidir. Eğer mevcut
verilere ekleme veya çıkartma yapılmak istenirse, ağaç yapısının kullanılması
daha uygundur. Görüldüğü gibi veriye ulaşma şekline göre organizasyon
değişmektedir.
İyi bir
organizasyon yapılabilmesi için amaçlananlar:
§
Hafızanın en iyi şekilde kullanılması, verinin çok
fazla yer kaplamamasını sağlayacak şekilde organize edilmesi,
§
Verinin oluşturulması, ekleme/çıkartma yapılması,
arama yapma veya bilgi çekme gibi ulaşım stilleri için verimli algoritmalar
sunmasıdır.
Organizasyon
yapısı mevcut durumdaki önemli kriterlere göre de değişim gösterir. Hafızanın
etkin olarak kullanılması gereken bir durumda hız göz ardı edilebilirken, hız
daha önemli ise, hafızada çok yer kaplayan bir organizasyon tercih edilebilir.
Algoritma: Algoritma bir işi yapmak için adım adım uygulanan
kurallar dizisidir. Bir problemi çözmek amacıyla arka arkaya gelen komular
dizisi olarak da tanımlanabilir.
Algoritma Süreci: Bir algoritma aşağıda
sıralanan süreçlerden geçmektedir.
§
Tasarım (design)
§
Doğruluğunu ispat etme (validation)
§
Analiz edip özelliklerinin belirlenmesi (analysis)
§
Uygulama (implementation)
§
Test etme (test)
Algoritmalar
· Sıralama algoritmaları (selection
sort, insertion sort, bubble sort, shell sort, merge sort, quick sort, heap
sort),
· Doğrusal zamanda sıralama (count sort,
radix sort, bucket sort).
· Dinamik programlama (matrix-chain
multiplication, longest common subsequence).
· Temel graf algoritmaları (BFS, DFS,
Topological sort).
· Bilgi sıkıştırma (Huffman algorithm).
· Greedy algoritmları, minimum spanning trees (kruskal algorithm, prim algorithm), shortest path (bellman-ford
algorithm, dijkstra algorithm).
Veri Yapılarının Güçlü ve Zayıf Yanları
Veri Yapısı
|
Artıları
|
Eksileri
|
§
Dizi
|
§
Hızlı ekleme ve çok hızlı erişim(indis
biliniyorsa).
|
§
Yavaş arama, yavaş silme ve sabit boyut.
|
§
Sıralı Dizi
|
§
Sıralanmamış diziye göre daha hızlı arama.
|
§
Yavaş arama, yavaş silme ve sabit boyut.
|
§
Yığın
|
§
Son giren, ilk çıkar(last-in, first-out) erişimi
sağlar.
|
§
Diğer öğelere yavaş erişim.
|
§
Kuyruk
|
§
İlk giren, ilk çıkar(first-in, first-out)
erişimi sağlar.
|
§
Diğer öğelere yavaş erişim.
|
§
Bağlı Liste
|
§
Hızlı ekleme ve silme.
|
§
Yavaş arama.
|
§
Hash Tablosu
|
§
Hızlı ekleme ve anahtar bilindiğinde çok hızlı
erişim.
|
§
Yavaş silme, anahtar bilinmediğinde yavaş erişim
ve verimsiz bellek kullanımı.
|
§
Küme(Heap)
|
§
Hızlı ekleme ve silme.
|
§
Diğer öğelere yavaş erişim. Başta en büyük öğeye
erişim.
|
§
İkili Ağaç
|
§
Hızlı arama, ekleme ve silme(ağaç dengeli ise).
|
§
Silme algoritması karmaşık.
|
§
Graf
|
§
Gerçek-dünya problemlerini modelleyebilir.
|
§
Bazı algoritmaları yavaş çalışmakta ve
karmaşıklığı yüksektir.
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
0
|
VE
kapısı (AND) : Y=A.B
VEYA
kapısı (OR): Y=A+B
DEĞİL
kapısı (NOT) : Y=A`
VEDEĞİL
kapısı (NAND) : Y=(A.B)`
VEYADEĞİL
kapısı (NOR) : Y=(A+B)`
ÖZELVEYA
kapısı (XOR) à
ÖZELVEYADEĞİL
kapısı (XNOR) : Y= (XOR) `
Hiç yorum yok:
Yorum Gönder