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