Algoritma Geliştirme ve Veri Yapıları
Algoritma geliştirme ve veri yapıları konusu bilgisayar, bilişim ve yazılım mühendisliği disiplinleri için oldukça önemli ve en temel konularından birisidir. Bilgisayar olimpiyat soruları incelendiğinde bile, soruların büyük bir kısmının algoritma ve veri yapıları konusundan olduğu görülür. Bir bilişimci veya yazılım tasarımcısı, herşeyden önce veri modellerini, veri yapılarını ve modelleme araçlarını bilmelidir. Ayrıca, donanım tasarımcıları için bile, özellikle gömülü sistemlerin tasarlanmasında, algoritma geliştirme ve veri yapıları konusu oldukça önemlidir.
İş yaşamında veya günlük yaşamda karşılaşılan problemleri modellemek ve onlara ait çözümleri evrensel düzeyde algoritmik olarak tasarlayabilmek için bu konu mutlaka bilinmelidir; önce çözüm için en uygun veri modeli belirlenmeli, daha sonra veri yapısı ortaya konularak problemin algoritmaları geliştirilmedir. (www.tdk.com.tr)
Kitabımız, "Veri Yapıları ve Algoritmalar", "Program Geliştirme ve Veri Yapıları" ve "Algoritma Geliştirme ve Veri Yapıları" gibi dersler için nitelikli iyi bir kaynaktır.
Konular hem teorik olarak anlatılmış hem de birebir yazıldığında çalışan program örnekleri verilmiştir. Ayrıca her bölümde konuyla ilgili sorular eklenerek kişinin kendi kendisini sınaması amaçlanmıştır.
----------
İÇİNDEKİLER
Önsöz
Bölüm 1. Algoritma Geliştirme Üzerine Temel Kavramlar
1.1. Algoritmaların Özellikleri ve Harzemli'nin Algoritmaları
1.1.1. Algoritmaların Temel Özellikleri
1.1.2. Harzemli ve Harzemli'nin Algoritmaları
1.2. Veri Yapısı ve Veri Modeli
1.3. Algoritmik ve “Heuristic” Yaklaşımlar
1.4. Kaba Kod ve Gerçek Kod
1.5. Algoritma Karmaşıklığı
1.4.1. Büyük O Notasyonu
1.4.2. Kıyaslama (Benchmarking)
1.4.3. Program Bellek Gereksinimi
1.4.4. Polinom Zamanlı Problem Çözebilme
1.6. Programlama Dilleri
1.7. Böl ve Yönet Yaklaşımı
1.8. Algoritmaların Şekilsel Gösterimi
1.9. Sorular
Bölüm 2. Veri Modelleri
2.1. Liste ve Bağlantılı Liste Veri Modeli
2.2. Ağaç Veri Modeli
2.3. Graf Veri Modeli
2.4. Durum Makinası Veri Modeli
2.5. Veritabanında İlişkisel Veri Modeli
2.6. Ağ Veri Modeli
2.7. Proje
2.8. Özet
2.9. Sorular
Bölüm 3. Veri Yapıları
3.1. Temel Veri Yapıları
3.1.1. Karakter (ASCII, Ünikod)
3.1.2. Tamsayılar
3.1.3. Kesirli Sayılar (Kayan Noktalı-IEEE 754)
3.1.4. Sözce ve Sözcükler
3.1.5. Diziler
3.2. Veri Modelleri için Tanımlamalı Veri Yapıları
3.2.1. Topluluk Türü Tanımlamalı Veri Yapısı
3.2.2. Ortaklık Türü Tanımlamalı Veri Yapısı
3.3. Proje
3.4. Özet
3.5. Sorular
Bölüm 4. Algoritma veya Programların Şekilsel Gösterimi
4.1. Akış Şemaları
4.1.1. Akış Şeması Simgeleri
4.1.2. Çeşitli Akış Şeması Örnekleri
4.2. N-S (Nassi-Schnederman) Şemaları
4.3. UML Diyagramları
4.4. Proje
4.5. Özet
4.6. Sorular
Bölüm 5. Arama ve Sıralama Algoritmaları
5.1. Arama ve Sıralama Üzerine Temel Kavramlar
Dahili ve Harici Algoritmalar
5.2. Arama Algoritmaları
5.2.1. Ardışıl Arama Algoritması
5.2.2. İkili Arama (Binary Search)
5.3. Sıralama Algoritmaları
5.3.1. Araya Sokma Sıralaması
5.3.2. Seçmeli Sıralama
5.3.3. Kabarcık Sıralaması
5.3.4. Birleşmeli Sıralama
5.3.5. Kümeleme Sıralaması
5.3.6. Hızlı Sıralama
5.4. Proje
5.5. Özet
5.6. Sorular
Bölüm 6. Liste ve Bağlantılı Liste
6.1. Liste ve Bağlantılı Liste Nedir?
6.2. Bağlantılı Liste Türleri
6.3. Bağlantılı Listenin Veri Yapısı
6.4. Bağlantılı Liste Uygulaması
6.4.1. Tek Yönlü Bağlantılı Listenin Tam Kodu
6.5. Dizi Üzerinde Bağlantılı Liste
6.6. Proje
6.7. Özet
6.8. Sorular
Bölüm 7. Kuyruk ve Yığın
7.1. Verilerin Geçisi Olarak Tutulması .
7.2. Kuyruk Yapısı
7.2.1. Dizi Üzerinde Kuyruk Yapısı
7.2.2. Bağlantılı Liste ile Kuyruk Yapısı
7.3. Yığın Yapısı
7.3.1. Dizi Üzerinde Yığın Tasarımı
7.3.2. Bağlantılı Liste ile Yığın Tasarımı
7.4. Proje
7.5. Özet
7.6. Sorular
Bölüm 8. Ağaç Veri Modeli ve Uygulaması
8.1. Ağaç Türleri
8.1.1. İkili Ağaçlar
8.1.2. Trie Ağacı/Sözlük Ağacı
8.1.3. Kümeleme Ağacı (Heap Tree)
8.1.4. Bağıntı Ağaçları (Expression Tree)
8.1.5. Kodlama Ağaçları (Huffman ve Shannon-Fano)
8.1.6. Dengeli Ağaç ve AVL Ağaç Yapısı
8.2. Ağaçların Bellekte Tutulması ve Veri Yapısı
8.3. İkili Arama Ağaçları İçin Çeşitli Algoritmalar
Ekleme, Dolaşma, Arama ve Silme Algoritmaları
8.4. İkili Arama Ağacı Uygulaması
8.5. Proje
8.6. Özet
8.7. Sorular
Bölüm 9. Graflar Veri Modeli
9.1. Graf Teorisi ve Tanımlar
9.2. Grafın Bellekte Tutulması
9.2.1. Komşuluk Matrisi
9.2.2. Bitişiklik Matrisi
9.3. Graf Renklendirme
9.4. Graf Üzerinde Dolaşma Yöntemleri
9.4.1. DFS Yöntemi
9.4.2. BFS Yöntemi
9.5. Çeşiti Graf Algoritmaları
9.5.1. En Kısa Yol Problemi (Shortest Path)
Dijkstra’nın Algoritması
Bellman ve Ford Algoritması
Floyd’un Algoritması
9.5.2. En Küçük Yol Ağacı Problemi (Minimum Spanning Tree)
Kruskal’ın Algoritması .
Prim’in Algoritması
Sollin’in Algoritması
9.5.3. Gezgin Satıcı Problemi (Travelling Salesman)
9.5.4. Şebeke Akış Problemi (Network Flow)
9.6. Proje
9.7. Özet
9.8. Sorular
Bölüm 10. Davranış Modelleme ve Durum Makinası
10.1. Durum Makinası Kavramları
10.2. Sonlu Durum Makinası
10.3. Turing Makinası
10.4. Gramer Çözümleme
10.4. Proje Çalışması
10.5. Özet
10.6. Sorular
Bölüm 11. Dizinli Dosyalama Yapısı
11.1. Temel Dosya İşlemleri
11.1.1. Örnek Dosya İşlemleri
11.1.2. Altdüzey Dosya Sistemi
11.2. Dizinli Dosyalama Yapısı Nedir?
11.3. Dizinli Dosyalama Örneği
11.4. Proje
11.5. Özet
11.6. Sorular
Bölüm 12. Rekürsif Algoritmalar
12.1. Rekürsif Algoritma Davranışı ve Yararları
12.2. Çeşitli Rekürsif Algoritmalar
12.3. Proje
12.4. Özet
12.5. Sorular
Bölüm 13. Sıkıştırma ve Şifreleme Algoritmaları
13.1. Sıkıştırma Algoritmaları
13.1.1. Ağaca Dayalı Sıkıştırma Algoritmaları
13.1.1.1. Huffman Kodlama Ağacı
13.1.2.1. Shannon Fano Kodlama Ağacı
13.1.2. Sözlüğe Dayalı Sıkıştırma Algoritmaları
13.1.3. Geleneksel Sıkıştırma Algoritmları
13.1.4. Aritmetik Kodlama ile Sıkıştırma
13.2. Şifreleme Algoritmaları
13.2.1. RSA Şifreleme Algoritması
13.3. Proje Çalışması
13.4. Özet
13.5. Sorular
- Açıklama
Algoritma geliştirme ve veri yapıları konusu bilgisayar, bilişim ve yazılım mühendisliği disiplinleri için oldukça önemli ve en temel konularından birisidir. Bilgisayar olimpiyat soruları incelendiğinde bile, soruların büyük bir kısmının algoritma ve veri yapıları konusundan olduğu görülür. Bir bilişimci veya yazılım tasarımcısı, herşeyden önce veri modellerini, veri yapılarını ve modelleme araçlarını bilmelidir. Ayrıca, donanım tasarımcıları için bile, özellikle gömülü sistemlerin tasarlanmasında, algoritma geliştirme ve veri yapıları konusu oldukça önemlidir.
İş yaşamında veya günlük yaşamda karşılaşılan problemleri modellemek ve onlara ait çözümleri evrensel düzeyde algoritmik olarak tasarlayabilmek için bu konu mutlaka bilinmelidir; önce çözüm için en uygun veri modeli belirlenmeli, daha sonra veri yapısı ortaya konularak problemin algoritmaları geliştirilmedir. (www.tdk.com.tr)
Kitabımız, "Veri Yapıları ve Algoritmalar", "Program Geliştirme ve Veri Yapıları" ve "Algoritma Geliştirme ve Veri Yapıları" gibi dersler için nitelikli iyi bir kaynaktır.
Konular hem teorik olarak anlatılmış hem de birebir yazıldığında çalışan program örnekleri verilmiştir. Ayrıca her bölümde konuyla ilgili sorular eklenerek kişinin kendi kendisini sınaması amaçlanmıştır.
----------
İÇİNDEKİLER
Önsöz
Bölüm 1. Algoritma Geliştirme Üzerine Temel Kavramlar
1.1. Algoritmaların Özellikleri ve Harzemli'nin Algoritmaları
1.1.1. Algoritmaların Temel Özellikleri
1.1.2. Harzemli ve Harzemli'nin Algoritmaları
1.2. Veri Yapısı ve Veri Modeli
1.3. Algoritmik ve “Heuristic” Yaklaşımlar
1.4. Kaba Kod ve Gerçek Kod
1.5. Algoritma Karmaşıklığı
1.4.1. Büyük O Notasyonu
1.4.2. Kıyaslama (Benchmarking)
1.4.3. Program Bellek Gereksinimi
1.4.4. Polinom Zamanlı Problem Çözebilme
1.6. Programlama Dilleri
1.7. Böl ve Yönet Yaklaşımı
1.8. Algoritmaların Şekilsel Gösterimi
1.9. Sorular
Bölüm 2. Veri Modelleri
2.1. Liste ve Bağlantılı Liste Veri Modeli
2.2. Ağaç Veri Modeli
2.3. Graf Veri Modeli
2.4. Durum Makinası Veri Modeli
2.5. Veritabanında İlişkisel Veri Modeli
2.6. Ağ Veri Modeli
2.7. Proje
2.8. Özet
2.9. Sorular
Bölüm 3. Veri Yapıları
3.1. Temel Veri Yapıları
3.1.1. Karakter (ASCII, Ünikod)
3.1.2. Tamsayılar
3.1.3. Kesirli Sayılar (Kayan Noktalı-IEEE 754)
3.1.4. Sözce ve Sözcükler
3.1.5. Diziler
3.2. Veri Modelleri için Tanımlamalı Veri Yapıları
3.2.1. Topluluk Türü Tanımlamalı Veri Yapısı
3.2.2. Ortaklık Türü Tanımlamalı Veri Yapısı
3.3. Proje
3.4. Özet
3.5. Sorular
Bölüm 4. Algoritma veya Programların Şekilsel Gösterimi
4.1. Akış Şemaları
4.1.1. Akış Şeması Simgeleri
4.1.2. Çeşitli Akış Şeması Örnekleri
4.2. N-S (Nassi-Schnederman) Şemaları
4.3. UML Diyagramları
4.4. Proje
4.5. Özet
4.6. Sorular
Bölüm 5. Arama ve Sıralama Algoritmaları
5.1. Arama ve Sıralama Üzerine Temel Kavramlar
Dahili ve Harici Algoritmalar
5.2. Arama Algoritmaları
5.2.1. Ardışıl Arama Algoritması
5.2.2. İkili Arama (Binary Search)
5.3. Sıralama Algoritmaları
5.3.1. Araya Sokma Sıralaması
5.3.2. Seçmeli Sıralama
5.3.3. Kabarcık Sıralaması
5.3.4. Birleşmeli Sıralama
5.3.5. Kümeleme Sıralaması
5.3.6. Hızlı Sıralama
5.4. Proje
5.5. Özet
5.6. Sorular
Bölüm 6. Liste ve Bağlantılı Liste
6.1. Liste ve Bağlantılı Liste Nedir?
6.2. Bağlantılı Liste Türleri
6.3. Bağlantılı Listenin Veri Yapısı
6.4. Bağlantılı Liste Uygulaması
6.4.1. Tek Yönlü Bağlantılı Listenin Tam Kodu
6.5. Dizi Üzerinde Bağlantılı Liste
6.6. Proje
6.7. Özet
6.8. Sorular
Bölüm 7. Kuyruk ve Yığın
7.1. Verilerin Geçisi Olarak Tutulması .
7.2. Kuyruk Yapısı
7.2.1. Dizi Üzerinde Kuyruk Yapısı
7.2.2. Bağlantılı Liste ile Kuyruk Yapısı
7.3. Yığın Yapısı
7.3.1. Dizi Üzerinde Yığın Tasarımı
7.3.2. Bağlantılı Liste ile Yığın Tasarımı
7.4. Proje
7.5. Özet
7.6. Sorular
Bölüm 8. Ağaç Veri Modeli ve Uygulaması
8.1. Ağaç Türleri
8.1.1. İkili Ağaçlar
8.1.2. Trie Ağacı/Sözlük Ağacı
8.1.3. Kümeleme Ağacı (Heap Tree)
8.1.4. Bağıntı Ağaçları (Expression Tree)
8.1.5. Kodlama Ağaçları (Huffman ve Shannon-Fano)
8.1.6. Dengeli Ağaç ve AVL Ağaç Yapısı
8.2. Ağaçların Bellekte Tutulması ve Veri Yapısı
8.3. İkili Arama Ağaçları İçin Çeşitli Algoritmalar
Ekleme, Dolaşma, Arama ve Silme Algoritmaları
8.4. İkili Arama Ağacı Uygulaması
8.5. Proje
8.6. Özet
8.7. Sorular
Bölüm 9. Graflar Veri Modeli
9.1. Graf Teorisi ve Tanımlar
9.2. Grafın Bellekte Tutulması
9.2.1. Komşuluk Matrisi
9.2.2. Bitişiklik Matrisi
9.3. Graf Renklendirme
9.4. Graf Üzerinde Dolaşma Yöntemleri
9.4.1. DFS Yöntemi
9.4.2. BFS Yöntemi
9.5. Çeşiti Graf Algoritmaları
9.5.1. En Kısa Yol Problemi (Shortest Path)
Dijkstra’nın Algoritması
Bellman ve Ford Algoritması
Floyd’un Algoritması
9.5.2. En Küçük Yol Ağacı Problemi (Minimum Spanning Tree)
Kruskal’ın Algoritması .
Prim’in Algoritması
Sollin’in Algoritması
9.5.3. Gezgin Satıcı Problemi (Travelling Salesman)
9.5.4. Şebeke Akış Problemi (Network Flow)
9.6. Proje
9.7. Özet
9.8. Sorular
Bölüm 10. Davranış Modelleme ve Durum Makinası
10.1. Durum Makinası Kavramları
10.2. Sonlu Durum Makinası
10.3. Turing Makinası
10.4. Gramer Çözümleme
10.4. Proje Çalışması
10.5. Özet
10.6. Sorular
Bölüm 11. Dizinli Dosyalama Yapısı
11.1. Temel Dosya İşlemleri
11.1.1. Örnek Dosya İşlemleri
11.1.2. Altdüzey Dosya Sistemi
11.2. Dizinli Dosyalama Yapısı Nedir?
11.3. Dizinli Dosyalama Örneği
11.4. Proje
11.5. Özet
11.6. Sorular
Bölüm 12. Rekürsif Algoritmalar
12.1. Rekürsif Algoritma Davranışı ve Yararları
12.2. Çeşitli Rekürsif Algoritmalar
12.3. Proje
12.4. Özet
12.5. Sorular
Bölüm 13. Sıkıştırma ve Şifreleme Algoritmaları
13.1. Sıkıştırma Algoritmaları
13.1.1. Ağaca Dayalı Sıkıştırma Algoritmaları
13.1.1.1. Huffman Kodlama Ağacı
13.1.2.1. Shannon Fano Kodlama Ağacı
13.1.2. Sözlüğe Dayalı Sıkıştırma Algoritmaları
13.1.3. Geleneksel Sıkıştırma Algoritmları
13.1.4. Aritmetik Kodlama ile Sıkıştırma
13.2. Şifreleme Algoritmaları
13.2.1. RSA Şifreleme Algoritması
13.3. Proje Çalışması
13.4. Özet
13.5. SorularStok Kodu:9789756797945Boyut:16x24Sayfa Sayısı:304Baskı:7Basım Tarihi:Ekim 2020Kapak Türü:Karton KapakKağıt Türü:1.hamur
- Taksit Seçenekleri
- PaytrTaksit SayısıTaksit tutarıGenel ToplamTek Çekim293,25293,252156,45312,903106,45319,35481,60326,39566,74333,72656,79340,76
- Yorumlar
- Yorum yazBu kitabı henüz kimse eleştirmemiş.