Veri Yap*lar* ve Algoritmalar

advertisement
Veri Yapıları ve Algoritmalar
Kaynak:
Veri Yapılar ve Algoritmalar-Rıfat Çölkesen
Algoritmalar-Nabiyev
Google Search “Data Structure and
Algorithms with …”
Konular:
•
•
•
•
•
•
•
•
•
•
Temel veri yapıları ile algoritma tasarımı
– Veri yapıları tanım
– Akış şemaları
Dizi ve Matris
Algoritma Analizi ve O(N)
Arama ve Sıralama Algoritmaları
Bağlantılı Listeler
Yığın ve Kuyruk
Özyineleme(Recursion)
Ağaç Veri yapısı
– İkili Arama Ağacı
– Huffman Ağacı
Graflar
– Graf renklendirme
– En kısa yol problemi
– En kısa yol ağacı
Dosya organizasyonu
– Ardışıl Dosya Org.
– Bağıl Dosya Org.
• Hashing
Veri Yapısı
• Verinin bellekte
tutulma şekli
– Sayı
– Sayı değil (karakter)
int char float double …
Veri Modeli
• Veri modeli (data model), verilerin birbirleriyle
ilişkisel veya sırasal durumunu gösterir; problemin
çözümü için kavramsal bir yaklaşım yöntemidir
denilebilir.
• Bilgisayar ortamında uygulanacak tüm matematik ve
mühendislik problemleri bir veri modeline
yaklaştırılarak veya yeni veri modelleri tanımlaması
yapılarak çözülebilmektedir .
• Bağlı listeler, Yığınlar, kuyruklar, ağaçlar(ikili sıralama
ağacı, huffman), graflar(renklendirme, en kısa yol
bulma, en kısa yol ağacı, grafta dolaşma),
hashing(çırpı)
• Öğrenci no? 120201066
Algoritma:
• Bir probleminin adımsal çözümü, gidiş yolu.
• Algoritmayı kodlanırsa-> program
Giriş
Algoritma
Çıkış
Algoritma-PseudoCode
• Kaba-kod (PseudoCode), bir algoritmanın yarı programlama
dili kuralı, yarı konuşma diline dönük olarak ortaya
koyulması/tanımlanmasıdır. Kaba-kod, çoğunlukla, bir veri
yapısına dayandırılmadan algoritmayı genel olarak tasarlanır.
• Gerçek kod ise, algoritmanın herhangi bir programlama
diliyle, belirli bir veri yapısı üzerinde gerçekleştirilmiş halidir.
Bir algoritmanın gerçek kodu, yalnızca, tasarlandığı veri yapısı
üzerinde koşar; veri yapısı değiştirildiğinde algoritmanın
gerçek kodu üzerinde oynamalar yapılmalıdır
Akış Şeması
• Akış şeması, algoritmanın metinsel değil de
yanda görülen geometrik simgelerle şekilsel
olarak ifade edilmesidir.
• Akış şeması, kodlanacak dilin kontrol deyimleri
göz önüne alınarak çizilirse, daha sonra
kodlama kolayca gerçeklenir.
Akış Şeması-2
Başla
Bitir(Son)
Atama (a=b+c)
Veri çıkış
(Output)
Veri girişi
(input)
Eğer(İf)
Eğer(İf)
i=0
1
N
for (int i=0; i<N; i++)
Örnek algoritma
• A, B, C değişkeni olarak girilen sayılardan
büyük olanı A değişkenine, ikinciyi B
değişkenine, küçük olanı C değişkenine atan
algoritma
• 2.dereceden denklem reel çözümü
• Bir k sayısı tek ise 3 ile çarp 1 ekle, çift ise 2’ye
bol. k=1 ise dur. Kaç adım sürer hesapla
• Sayı tahmini
Download