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 sıralama algoritmaları ile aynı sınıfta kabul edilebilir. Bora sıralamasında amaç, bir veri kümesinin bilinen bir […]

Devam

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 ve bu diskleri yerleştirebileceğimiz 3 adet direk bulunmaktadır. Oyun kuralları aşağıdaki şekildedir: Küçük bir diskin […]

Devam

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, yukarıdaki temsili resimde gösterilmiştir. Algoritmanın diğer metin arama algoritmalarından en büyük farkı, aranan dizgi (pattern) […]

Devam

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 search (yinelemeli derinleşen, derin öncelikli arama)” olarak da geçmektedir.   Algoritma basitçe derinlik değerini bir […]

Devam

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 ihtimalleri sırayla deneyen bir robot uygulaması geliştirilecektir. Örneğin labirent bilgisinin bir dosyada bulunduğunu ve bizim […]

Devam

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ı gerekir: Bir değerin bulunmadığını söylemeden önce bütün değerlere bakmış veya bütün ihtimalleri değerlendirmiş olmalıdır. Arama […]

Devam

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 kullanıldığı özyineli fonksiyonlar bilgiyi tutma ve ters çevirme (son giren ilk çıkar (LIFO) algoritması) için […]

Devam

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 tanımlanıp içerisine veri konuldukça hafızada kapladığı yeri arttırmaktadır. Bu anlamda bağlı listelere benzer özellik göstermektedir. […]

Devam

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 trees) , eş şekillisi (isomorphic) olarak da düşünülebilir. 2-3-4 ağacının ismi, ağaçtaki düğümlerin değişik durumlarda […]

Devam

Mealy ve Moore Makineleri (Mealy and Moore Machines)

Yazan : Şadi Evren ŞEKER Bilgisayar bilimlerinde sıkça kullanılan sonlu durum makinelerinin (finite state machine, FSM veya Finite State Automaton , FSA) gösteriminde kullanılan iki farklı yöntemdir. Genelde literatürde bir FSM’in gösteriminde en çok moore makinesi kullanılır. Bu iki yöntem (mealy ve moore makinaları) sonuçta bir gösterim farkı olduğu için bütün mealy gösterimlerinin moore ve […]

Devam