Flash Sort (Şimşek Sıralaması, Bora Sıralaması)
Yazan : Şadi Evren ŞEKER Bu yazının amacı bora sıralamasını (şimşek sıralaması, flash sort) açıklamaktır. Bu sıralama algoritması yapısal olarak aslında araya ekleme sıralamasının (insertion sort) özel bir hali olarak kabul edilebilir. Sıralama algoritmaları arasında parçalı sıralama özelliği olan diğer…
Hanoi Kuleleri (Towers of Hanoi)
Yazan : Şadi Evren ŞEKER Bu yazının amacı, oldukça meşhur bir veri yapıları (data structures) problemi olan Hanoi Kulelerini (Towers of hanoi) anlatmak ve çözüm algoritmalarını açıklamaktır. Oyun basitçe 3 direk üzerinden oynanmaktadır. Diğer bir deyişle belirli bir sayıda diskimiz…
Horspool Algoritması
Yazan : Şadi Evren ŞEKER Algoritmanın gayesi, bir metin içerisinde verilen bir dizginin (string) aranmasıdır. Literatürde arama yapılan metin için T (ingilizcedeki Text (metin) kelimesinden gelmektedir) ve aranan kelime için P (ingilizcedeki Pattern (örüntü) kelimesinden gelmektedir) kullanılmaktadır. Klasik bir arama,…
Yinelemeli Derinlik Araması (Iterative Deepining Search)
Yazan :Şadi Evren ŞEKER Bilgisayar bilimlerinin çeşitli alanlarında (örneğin yapay zeka, veri yapıları veya şekil kuramı (graph theory) gibi) kullanılan arama algoritmalarından birsidir. Algoritma, derin öncelikli drama (depth first search) üzerine kurulu olduğu için, literatürde “iterative deepening depth first…
Labirentte yol bulma kodu
Yazan : Şadi Evren ŞEKER Bu yazının amacı, geri izleme algoritmasının (backtracking algorithm) bir uygulaması olarak, basit bir labirentte yol bulma kodunu JAVA dilinde kodlamaktır. Bu uygulamada herhangi bir yapay zeka yönetmi uygulanmayacaktır. Basitçe kör arama (blind search) yapan ve…
Atlamalı Liste (Skip List)
Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde, özellikle veri yapısı (data structures) konusunda kullanılan bir yöntemdir. Basitçe bir bağlı listeye (linked list) erişimi hızlandırmak amacıyla, listenin üzerinde bir fihrist (index) oluşturmayı hedefler. Örnek olarak kullanacağımız sayılar aşağıdaki şekilde verilmiş olsun…
Etraflı Arama (Tam Arama, Exhaustive Search)
Yazan : Şadi Evren ŞEKER Literatürde tam arama veya etraflı arama olarak geçmektedir. İngilizcede “exhaustive search” terimi kullanılır. Genel olarak, arama algoritmalarının performansını arttırmak için kullanılan bir yöntemdir. Bir arama algoritmasının tam arama (exhaustive search) olabilmesi için aşağıdaki şartları sağlaması…
Dosyayı Tersten Basan Kod
Yazan : Şadi Evren ŞEKER Gelen bir soru üzerine, C dilinde bir dosyanın içeriğini tersten ekrana basan kodu yazıp sitede yayınlıyorum. Öncelikle algoritmamızı inşa edelim. Ters almak gibi işlemler yapı olarak özyineli (recursive) fonksiyonlara çok uygundur. Genelde stack (yığın) yapısının…
Java dilinde vektörler
Yazan : Şadi Evren ŞEKER Bu yazının amacı, Java dilindeki vektör sınıfının kullanılmasını ve yapısını anlatmaktır. Java dilindeki vektörlerin yapısından bahsederek başlayalım. Klasik veri yapısı olarak dizilerin (array) ve bağlı listelerin (linked list) özelliklerini birleştirmiştir. Bir vektör boyutu belli olmadan…
2-3-4 Ağaçları (2 3 4 trees)
Yazan : Şadi Evren ŞEKER 2-3-4 ağacı, B-ağaçlarının (B-Trees) özel bir halidir. Bu ağacın özelliği, düğüm boyutunun (node size) 3 ile sınırlı olmasıdır. Ağaç ayrıca sürekli olarak dengeli bir ağaç garantisi verir (balanced tree). 2-3-4 ağaçları, kırmızı siyah ağaçlarının (red-black…
