Algoritmalar

ARAMA ALGORİTMALARI Giriş ve Temel Kavramlar

Merhaba değerli okurlarım, yeni bir ders serimize hoş geldiniz. Bu ders serimizde makalelerim arama algoritmaları konusu üzerine olacaktır.

Arama
“Bilgi seti içerisinde bir anahtar sözcüğe dayalı olarak bilgiye erişme  ve başka bilgileri de elde etme işlemidir.”  Sayısal ortamdaki bilgilerin(verilerin)  anlamlı olarak kullanılması ve bu bilgiler ile işlemler gerçekleştirilmesi için bilginin var olup olmadığı varsa bellekte ya da veri seti içerisinde nerede olduğunun önemi vardır. Yani bilgiyi aramak ve bulmak gerekir.  Ancak bilginin türü ve bulunduğu ortama göre bir çok değişik yöntem ile arama işlemi gerçekleştirilir.  İşte bu yöntemlerin bir çoğu kabül görmüş bilinen arama algoritmalarıdır. Bu ders serimizde bu algoritmalar üzerinde tek tek inceleme yapmaya gayret göstereceğiz.

Ardışıl Arama (Sequential Search), en yalın arama yöntemidir. Bir veri seti içerisinde aranan veriyi bulmak amacıyla baştan sona doğru  yapılan tarama işlemidir. Kodlaması çok basittir ancak çalışma hızı çok düşüktür.  Genelde ikili arama algoritmaları yaygın olarak kullanılır.

Bir çok arama algoritmasında aşağıdaki üç husus dikkate alınır.

  • Bellek kullanımı
  • Geçen zaman
  • Algoritmanın okunurluğu

Veri setinin büyüklüğü,modeli ve arama işleminin gerçekleştirileceği ortama göre bu 3 hususta öncelik değişkenlik gösterir.

Şimdi arama algoritmalarında kullanılan bazı kavramlardan bahsedelim. Ayrıca veri seti önceden sıralı ise arama işlemi daha basit olacaktır ya da arama algoritması değişiklik gösterecektir.

Anahtar Sözcük (Keyword): Arama işlemi belli bir veya birkaç bilgi için gerçekleştirilir. Bu bilgi parçası bir sayısal veri, cümle, tarih, vb. olabileceği gibi tüm bunların biraraya gelmesinden de oluşabilir. Anahtar sözcükler genelde küçük ve sadedirler. Küçüklük ve sadelikleri aksi yönde değiştikçe algoritmaların sonuç üretmesi de zorlaşacak ve zaman alacaktır.

Harici Arama( External Search): Arama işleminin gerçekleştirileceği veri seti eğer bir disk/disket/ usb/ cd ve harici bir saklama biriminde tutuluyor ise bu verinin arama işlemine harici arama denir.

Dahili Arama( internal Search): Arama işleminin gerçekleştirileceği veri seti RAM gibi erişimi çok hızlı belleklerde tutuluyor ise bu verinin arama işlemine dahili arama denir.

Yukarıda tanımını yaptığım harici ve dahili arama, algoritmanın seçimini en çok etkileyen özelliklerden bir tanesidir. Harici arama işlemlerinde verilerin yer değişiminin az olmasını sağlayan algoritmalar seçilir. Çünkü harici depolama birimlerinde bu işlemler daha yavaş olacaktır. Kullanacağınız arama algoritması ne kadar hızlı olursa olsun çok fazla yer değişimi yapıyor ise yavaş işlem yapacağından olumlu sonuç alamayacaksınız. Dahili arama işlemlerinde ise verinin bellekte tutulamayacak kadar büyük olmaması gerekir.

Birincil Anahtar Sözcük: Anahtar sözcüğün aldığı değerin her kayıt için farklı olmasıdır. Birincil anahtar sözcük bir veri setinde aranırken ilk bulunduğu yerde arama algoritması tamamlanır. Diğer veri öğelerine bakılmaz.

İkincil Anahtar Sözcük: Farklı kayıtlar için aynı anahtar sözcüğün kullanılmasıdır. İkincil anahtar sözcük bir veri setinde aranırken tüm veri setinde arama algoritması tamamlanır.

Örneğin bir personel uygulamasında T.C. Kimlik Numarası birincil anahtar sözcüktür. Ancak personel adı ikincil anahtar sözcüktür.

Ayrıca arama algoritmalarını hızlandırmak adına bir çok düzenlemeler mevcuttur. Veri tabanında kullanılan indexler, konsolide edilmiş datalar bunlara örnektir.

Arama algoritmaları 3 temel sınıfta toplanır.Bunlar;

  1. İkili Arama
  2. Bir Çırpıda Arama
  3. Doğrusal Arama

Yorum Yaz