Veri Yapıları ve Algoritm

Download Report

Transcript Veri Yapıları ve Algoritm

Veri Yapıları ve Algoritmalar
Dr. Muhammet Balcılar
Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği,
Davutpaşa Kampüsü EEF Binası, D124, Esenler, İstanbul
Web: http://muhammetbalcilar.weebly.com/
E-mail: muhammetbalcilar [at] gmail [dot] com
muhammet [at] yildiz [dot] edu [dot] tr
Dersin Amacı
• Bir algoritmanın etkin, anlaşılır ve doğru olabilmesi için algoritmanın
işleyeceği verilerin düzenlenmesi gerektiğinden, verilerin düzenlenme
biçimini belirleyen yapıtaşları olan veri yapılarını tanımalarını
sağlamak; Ayrıca, belirli bir algoritmanın işletimi için bilgisayar
ortamında ne kadar süreye ve belleğe gereksinim olduğu önemli
olduğunu göstermektir.
Dersin İçeriği
• Veri Yapılarına ilişkin genel tanımlar,
• C Programlama Dili hakkında genel bilgileri,
• Yığın ve Özyinelemeli Programlar,
• Kuyruk ve Bağlı Liste Veri Yapıları,
• Ağaç Veri Yapısı,
• Sıralama ve Arama Algoritmaları,
• Çizgeleri, Warshall, En Kısa Yol Algoritmaları,
• Depolama, Liste, Dinamik Bellek Yönetimleri
Değerlendirme
• 1 Vize %30
• 1 Ödev %10
• 1 Quiz %10
• 1 Final %50
Program Geliştirme Aracı
• Dev C++
Kaynaklar
• Rifat Çölkesen «Veri Yapıları ve Algoritmalar»,Papatya Yay.
• Yedidyah LANGSAM, Moshe J. AUGENSTEIN, Aaron TENENBAUM,
“Data Structures using C and C++”, Prentice Hall,1996
• İbrahim AKMAN, “C ile Veri Yapıları”, SAS, 2002
Veri Nedir?
• Ölçüm, Sayım, Deney, Gözlem yada Araştırma yolu ile elde edilen,
belirli bir nesne, birey yada olguya ilişkin bir soyutlamadır.
• Bilgisayarların alabildiği, işleyebildiği, sonuç üretebildiği ve
saklayabildiği her şeydir.
Veri Yapısı ve Veri Modeli
• Veri Yapısı
• Verinin bellekte tutulma biçimi, bellekteki düzenini gösterir.
• Veri Modeli
• Verilerin birbirleriyle ilişkisel veya sırasal durumunu gösterir.
Veri Yapısı denince çoğu zaman Veri Yapısı + Veri modeli kastedilir
Algoritma
• Belirli bir görevi önceden tanımlanmış yada probleme
has olarak tanımlanacak bir veri modeline
dayandırılarak sonlu adımlarla çözümünü ortaya
koymaktır.
Veri Yapıları ve Algoritmalar
• Programlama dillerinin bize sağladığı temel veri modelleri, pek çok
gereksinim çerçevesinde ortaya atılmış ileri düzey veri modeli veya
kendimizin geliştireceği yeni bir veri modeli ile problemi
bilgisayarlarda çözecek yöntemleri geliştirebilmeyi hedefler.
• Problem bilgisayarda çözülürken
• Doğru bir veri modeli belirlemek
• Çözüm yöntemini doğru bir şekilde adım adım sıralayabilmek
gerekmektedir.