Hızlı Sıralama Algoritması (Quick Sort Algorithm)

Yazan : Şadi Evren ŞEKER Verinin hafızada sıralı tutulması için geliştirilen sıralama algoritmalarından (sorting algorithms) bir tanesidir. Basitçe sıralanacak olan dizideki orta noktada (mean) bulunan bir sayıyı seçerek diğer bütün sayıları bu orta sayıdan büyük veya küçük diye sınıflayarak sıralama yapmayı hedeflemektedir. Bu açıdan bir parçala fethet (divide and conquere) yaklaşımıdır. Ayrıca bu seçilen orta […]

Devam

Birleştirme Sıralaması (Merge Sort)

  Birleştirme Sıralaması (Merge Sort) Yazan : Şadi Evren ŞEKER Verinin hafızada sıralı tutulması için geliştirilen sıralama algoritmalarından (sorting algorithms) bir tanesidir. Basitçe sıralanacak olan diziyi ikişer elemanı kalan parçalara inene kadar sürekli olarak ikiye böler. Sonra bu parçaları kendi içlerinde sıralayarak birleştirir. Sonuçta elde edilen dizi sıralı dizinin kendisidir. Bu açıdan bir parçala fethet […]

Devam

Yığınlama Sıralaması (Heap Sort)

Yığınlama Sıralaması (Heap Sort) Yazan : Şadi Evren ŞEKER Verinin hafızada sıralı tutulması için geliştirilen sıralama algoritmalarından (sorting algorithms) bir tanesidir. Yıpınlama sıralaması, arka planda bir yığın ağacı(heap) oluşturur ve bu ağacın en üstündeki sayıyı alarak sıralama işlemi yapar. (Lütfen yığın ağacındaki en büyük sayının her zaman en üstte duracağını hatırlayınız. ) Sıralanmak istenen verimiz: […]

Devam

Yığın Ağacı (Heap)

Yığın Ağacı (Heap) Yazan : Şadi Evren ŞEKER Yığın ağacı bilgisayar bilimlerinde özellikle sıralama amacıyla çokca kullanılan bir veri yapısıdır. Bu veri yapısı üst düğümün (atasının) alt düğümlerden (çocuklarından) her zaman büyük olduğu bir ikili ağaç (binary tree) şeklinde düşünülebilir. Aşağıda örnek bir yığın ağacı verilmiştir: Yukarıdaki ikili ağaçta dikkat edilirse ağaç dengeli bir şekilde […]

Devam

Dizi üzerinde ağaç kodlaması

Yazan: Şadi Evren ŞEKER Ağaçlar bilindiği üzere gösterici kullanan veri yapılarıdır. Ancak verinin dizi(array) üzerinde saklanması durumunda ağacın bu gösterici özelliğinin kullanılması ne yazık ki mümkün olamamaktadır. Bunun yerine dizinin indis numaralarını kullanan bir matematiksel fonksiyon ile benzer bir yapı elde edilebilir. Yukarıda verilen ikili ağacı ve her düğümün köşesinde yazan düğüm numarasını dikkate alırsak […]

Devam

Nöbetçi (Sentinel)

Yazan : Şadi Evren ŞEKER Veri işlenmesi sırasında çeşitli durumlarda işlemin istenmeyen yerlere gitmesini engelleyen veri tipidir. Örneğin boyutu bilinmeyen bir dizi işlenirken dizinin sonuna gelindiğini anlamak için dizinin sonunda programın algılamasını sağlayan ve dizideki sayılardan ayırt edilen bir değer girmek gibi. Mesela sadece pozitif tam sayılardan oluşan bir dizide bitişi belirtmek için -1 yazılması […]

Devam

Sayarak Sıralama (Counting Sort)

  Sayarak Sıralama (Counting Sort) Yazan : Şadi Evren ŞEKER Verinin hafızada sıralı tutulması için geliştirilen sıralama algoritmalarından (sorting algorithms) bir tanesidir. Basitçe sıralanacak olan dizideki her sayının kaç tane olduğunu farklı bir dizide sayar. Daha sonra bu sayıların bulunduğu dizinin üzerinde bir işlemle sıralanmış olan diziyi elde eder. Sıralanmak istenen verimiz: 5,7,2,9,6,1,3,7 olsun. Bu […]

Devam

Kabarcık Sıralaması (Baloncuk sıralaması, Bubble Sort)

Yazan : Şadi Evren ŞEKER Verinin hafızada sıralı tutulması için geliştirilen sıralama algoritmalarından (sorting algorithms) bir tanesidir. Basitçe ardışık duran iki hafıza bloğunun birbirine nispetle sıralanması ve bu işlemin sürekli tekrarlanması sayesinde sıralar. Ardışık iki hafıza bloğuna bakmasından dolayı baloncuk ismini almıştır. Çünkü bu bakma işlemi bir baloncuğun (buble) hareket etmesi gibi sayıların üzerinde hareket […]

Devam

Fibonacci Arama Algoritması (Fibonacci Search Algorithm)

Yazan : Şadi Evren ŞEKER Bu arama algoritması, özyineli (recursive) bir seri olan fibonacci sayılarını kullanarak sıralı bir dizi üzerinde arama yapmaktadır. Çalışma mantığı arama yapılacak olan sıralı diziyi fibonacci sayılarını kullanarak parçalara bölmektir. Örneğin arama yapılacak olan alanın en fazla 2147483647 değerine sahip olabildiği integer alan olsun. Bu durumda bu sayıya ulaşana kadar olan […]

Devam

Bağımsız düğümler (Anti Clique, Independent Set)

Yazan: Şadi Evren ŞEKER Klik yapısının tersi olarak düşünülebilir. Basitçe bir grafta birbiri ile doğrudan bağlantısı olmayan düğümlerin oluşturduğu alt graftır. Yukarıdaki tasvirde iki adet graf verilmiştir. Üstte bütün graf görülmekte altta ise bu grafın bir alt grafı görülmketedir. Dikkat edilirse sadece altta bulunan {A,E,F} düğümleri alındığında aşağıdaki graf elde edilir ve bu grafta bulunan […]

Devam