- 19 Ağu 2022
- 48
- 29
ALGORİTMA VE VERİ YAPILARI
Veri Yapıları Nelerdir?Veri yapıları verilerin elektronik bir ortamda yönetilmesi ve depolanmasını sağlayan bir yol olarak tanımlanabilir. Veri yapı türlerine olarak ise; listeler, diziler, kuyruklar vb. örnek olabilir. Veri yapıları kolay ve zor hesaplamalar için bilgisayar biliminde çoğu alanda kullanılır.
Veri Yapıları Niçin Gereklidir?Bilgisayar algoritmasındaki karışıklık arttıkça, veri kullanımı da otomatikman artmaktadır. Bundan dolayı performans etkilenebilir ve endişe oluşturabilir. Bazı endişelere göz atalım;
İşlem Hızı: Büyük verileri işlemek için yüksek hızda işlem gerekir fakat büyüyen veri işlemcisi ile ihtiyaç olan işlem hızına ulaşılamayabilir.
Veri Arama: Veritabanından belli bir kayıt almak hızlıca aynı zamanda dengeli bir şekilde gerçekleştirilmelidir.
Veri Yapılarının Avantajları Nelerdir?
Verimli Bellek Kullanımı: Veri yapısının verimli bir şekilde kullanımıyla bellek kullanımına optimizasyon sağlanabilir.
Yeniden Kullanım: Veri yapıları yeniden kullanım imkanını sağlar. Yani belirli bir veri yapısı uyguladıktan sonra onu başka bir yerde kullanabiliriz.
Soyutlama: Veri yapısı , soyut veri çeşitlerinin türlerini oluşturur. Veri yapıları da onlara fiziksel bütünlüğünü kazandırır.

Veri Yapısı Algoritma Çeşitleri Nelerdir?
1.Greedy Algoritması:
Bu algoritma problem çözmeyi sezgisel yöntemle ele alır yani küresel optimum seçme ümidiyle her adımda o adıma özel optimum noktası seçilir. Bir algoritmanın hep en uygun çözümü üretmesi gerekli değildir. Sonuca en yakın olan tercih edilir. Kısaca bir seçim yapılması anında sonuca en yakın sonuç seçilir.

Greedy Algoritması Uygulama Örnekleri
-Dijikstra'nın tek kaynaklı kısa yol algoritması
-Huffman'ın algoritması
-Minimum yayılan ağaç için Kruskal ve Prim'in
algoritması
2. Backtracking Algoritması:
Bu algoritma geri takip algoritmasıdır. Bazı hesaplama sorunlarına yönelik, çözümlere kademeli olarak adaylar atayan ve bu adayların geçici bir çözümü tamamlayamacığını anladığı an adayı terk eder ve tüm çözümleri bulan genel bir algoritmadır. Kısacası deneme yanılma yoluna dayanarak çalışan bir algoritmadır.
Uygulama Örnekleri
-Sudoku
-Solo Test
-Sırt Çantası Problemi


3.Divide and Conquer(Böl ve Fethet) Algoritması:
Bu algoritma bir sorunu belirli küçük parçalara bölerek çözer. Daha sonra bu küçük problemlerden elde edilen sonuç birleştirilerek orjinal problemin sonucuna varılır.
Bu algoritma birçok algoritma çeşidinin birleştirilmesiyle ortaya çıkmış bir algoritma çeşididir.

Böl ve Fethet Uygulama Örnekleri
-Hızlı Sıralama
-İkili Sıralama
-Hanoi Kulesi Problemi

4.Simple Recursion(Basit Özyineleme) Algoritması:
Bu algoritma bir sorunun kendi başına tanımladığı bir sorunu çözme işlemidir. Bu algoritma aynı 'divide and conquer' algoritmasını kullanarak sorunları doğada orijinal sorunlara benzeyen küçük parçalara böler. Bu küçük problemler çözülür ve sonuçları orijinal problemin sonucu olana dek birleştirilir. Bunu 'divide and conquer'den ayıran özellik sorunun daha küçük ve benzersiz parçalara ayrılmasıdır.

-Fibonacci Serilerinin Bulunması
-Sudoku Oyunu
-Faktöriyel Kavramı
5.Randomized Algoritma:
Herhangi bir algoritmada rastgele sayılar vermek için kullanılır. Bu ratgele algoritmalar,rastgele sayı üreticiler tarafından uygulanmaktadır. Bu algoritmaların süresi üretilen sayılara ve girdiye bağlı olarak değişkenlik gösterebilir.
Eğer oluşturulan sayılar algoritma için en uygun çözüm ise algoritmanın ilerlemesi durdurulur. Bu algoritmanın iki temel algortiması; "Las Vegas ve Monte Carlo" algoritmasıdır.
Uygulama Örnekleri
-Hızlı Sıralama
-En Yakın Çift Problemleri

