Algoritma ve Veri Yapıları

Erstka

Yeni üye
19 Ağu 2022
40
20
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.



cv48p7d.png



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-algoritmasi.gif





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.


backtracking-algorithm-768x421.png
-Bu algoritma sezgiseldir ve çözümü ne zaman ulaşılacağı tam olarak kestirilemez. Çünkü her bir adayı test ederek geçtiği için doğru adayın ne zaman geleceği belli değildir. Bazı uygulama örnekleri şunlardır:






Uygulama Örnekleri
-Sudoku
-Solo Test
-Sırt Çantası Problemi









1200px-Knapsack.svg.png

Sudoku_Puzzle_%28Tourmaline%29R2.png
yo8iwJEaibGnm7SUWW7u68rRxcvNOlxFpuGdctuzrgFY_RCnBZqq70YMLeEuMcYpPm5d



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.


640px-Tower_of_Hanoi.jpeg




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











cv48p7d.png

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.


rjn08afema7wm6887f8u.png
Simple Recursion Uygulama Örnekleri

-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


8gcdkgh.png
h7imgcv.png
 

Blwe

Katılımcı Üye
17 Şub 2021
691
722
Türkçülük / Green Team
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.



cv48p7d.png



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-algoritmasi.gif





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.


backtracking-algorithm-768x421.png
-Bu algoritma sezgiseldir ve çözümü ne zaman ulaşılacağı tam olarak kestirilemez. Çünkü her bir adayı test ederek geçtiği için doğru adayın ne zaman geleceği belli değildir. Bazı uygulama örnekleri şunlardır:






Uygulama Örnekleri
-Sudoku
-Solo Test
-Sırt Çantası Problemi









1200px-Knapsack.svg.png

Sudoku_Puzzle_%28Tourmaline%29R2.png
yo8iwJEaibGnm7SUWW7u68rRxcvNOlxFpuGdctuzrgFY_RCnBZqq70YMLeEuMcYpPm5d



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.


640px-Tower_of_Hanoi.jpeg




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











cv48p7d.png

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.


rjn08afema7wm6887f8u.png
Simple Recursion Uygulama Örnekleri

-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


8gcdkgh.png
h7imgcv.png
Ellerine sağlık, böyle devam.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.