Veri Yapıları ve Algoritmaları ders_1

advertisement
Veri Yapıları ve Algoritmaları
ders_1
• Veri yapısı (Data Structure) verinin veya bilginin
bellekte tutulma şeklini veya düzenini gösterir.
• Tüm programlama dillerinin, genel olarak,
tamsayı, kesirli sayı, karakter ve sözcük
saklanması için temel veri yapıları vardır
• int, double, float(short, long, signed, unsigned),
char, boolean, diziler[x], cok boyutlu_diziler[x][y];
char string[z] , struct a{ int b, char c[d]}
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ı)
Algoritma
• Algoritma, belirli bir işi veya görevi var olan veya
sonradan tanımlanan veri modeline
dayandırılarak adım adım ortaya koymak ve
bunu bilgisayar ortamında herhangi bir
programlama diliyle kodlamaktır.
• Bir program, tasarlanması ne kadar güç
görünse de, gerekli veri modeli ve yapısı
belirlenmişse ve algoritmik ifadesi ortaya
koyulmuşsa, kolayca kodlanabilir; böylelikle
programı tasarlamak ve geliştirmek oldukça
kolaylaşır.
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
• Faktoriyel
• 2.dereceden denklem
• 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
• Dizinin en küçük, en büyük elemanını
bulma
Download