Algoritma Gelişimi ve Veri Yapıları

Stok Kodu:
9789756797945
Boyut:
16,5X24
Sayfa Sayısı:
304
Kapak Türü:
Karton Kapak
Dili:
Türkçe
indirimli
293,25
Taksitli fiyat: 9 x 35,84
1 adet mevcut
9789756797945
365594
Algoritma Gelişimi ve Veri Yapıları
Algoritma Gelişimi ve Veri Yapıları
293.25

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

Kaynakça

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

Kaynakça

Axess Kartlar
Taksit Sayısı Taksit tutarı Genel Toplam
Tek Çekim 293,25    293,25   
2 152,49    304,98   
3 103,62    310,85   
6 52,79    316,71   
9 35,84    322,58   
QNB Finansbank Kartları
Taksit Sayısı Taksit tutarı Genel Toplam
Tek Çekim 293,25    293,25   
2 152,49    304,98   
3 103,62    310,85   
6 52,79    316,71   
9 35,84    322,58   
Bonus Kartlar
Taksit Sayısı Taksit tutarı Genel Toplam
Tek Çekim 293,25    293,25   
2 152,49    304,98   
3 103,62    310,85   
6 52,79    316,71   
9 35,84    322,58   
Paraf Kartlar
Taksit Sayısı Taksit tutarı Genel Toplam
Tek Çekim 293,25    293,25   
2 152,49    304,98   
3 103,62    310,85   
6 52,79    316,71   
9 35,84    322,58   
Maximum Kartlar
Taksit Sayısı Taksit tutarı Genel Toplam
Tek Çekim 293,25    293,25   
2 152,49    304,98   
3 103,62    310,85   
6 52,79    316,71   
9 35,84    322,58   
World Kartlar
Taksit Sayısı Taksit tutarı Genel Toplam
Tek Çekim 293,25    293,25   
2 152,49    304,98   
3 103,62    310,85   
6 52,79    316,71   
9 35,84    322,58   
Diğer Kartlar
Taksit Sayısı Taksit tutarı Genel Toplam
Tek Çekim 293,25    293,25   
2 -    -   
3 -    -   
6 -    -   
9 -    -   
Yorum yaz
Bu kitabı henüz kimse eleştirmemiş.
Kapat