12 Nisan 2012 Perşembe

VERİ YAPILARI


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