Algoritmalar ve Veri Yapıları

Algoritma, verilmiş bir amacı gerçekleştirmek için, bir ilk durumdan başlayıp bir son duruma eriştirmeyi sağlayacak, sağlıklı olarak betimlenmiş sonlu bir komut kümesidir. Algoritmalar bilgisayar programları olarak gerçekleştirilebilir. Algoritma kavramını kolay anlatmak için genellikle gündelik hayat içindeki amaçlar için bulduğumuz, uyguladığımız algoritmaları verilir.
Örneğin annelerin yemek tarifleri, şehrin bir yerinden bir başka yerine gitmek için izlenecek usul, 3x2+5x-48=0 denkleminin köklerinin nasıl bulunacağı hep algoritma kavramına örnektir. Bu örneklerden de kolayca algılanacağı üzere bir amaca erişmenin yolu (yani algoritması) farklı başarımlarda olabilir. Aynı amaca yönelik bir algoritma bir diğerinden daha fazla zaman veya kaynak tüketiyor olabilir. Bilgisayar Bilimlerinin Algoritma dalı bu doğrultuda uğraş verir. Amaçlara erişmek için algoritmalar tasarlar ve başarımlarını analiz eder. Geliştirilmiş olanları iyileştirmeye çalışır.

Veri Yapıları, verinin kolay erişilebilecek ve işlenebilecek bir biçimde nerede ve nasıl tutulacağının bilimidir. Her ne kadar 'nerede' sorusunun yanıtı bilgisayar donanımı ile doğrudan ilintili gibi görünse bile gerçekte bunun çok ötesindedir. Bir ansiklopedinin bilgiyi tutuş biçimi (alfabetik sıralı, harf başlarının sayfalarının dizinden bulunabildiği yapı) bile bu disiplinin ilgi alanındadır. Örneğin baktığınız sayfada aradığınız sözcüğü her bulamamanın bir bedeli olsa idi, acaba ansiklopedilerimizi farklı düzenler miydik? Ya her iki günde bir ansiklopedi veya sözlükteki bazı tanımlar değişse, yeni sözcükler eklense durum ne olurdu? Bu ve buna benzer binlerce sorunun verimli çözümlerinin bulunması bu dalın ilgisindedir.

Hiç yorum yok: