Etiket arşivi: Algoritma

Doğru Algoritma Hayat Kurtarır

 

İlginç bir başlık, belki de çok iddalı. Olabilir belki bir hayat kurtarmayabilir ama bence zamanın önemini anlatıyor.

Dün gece bir iş için geliştirmem gereken 10 haneli bir şifre algoritmasını düşünürken aslında bilgisayarımı ne kadar fazla yorduğumu gördüm.

Topu topu 500.000 adet unique şifre üretme işlemi 16 saat (evet yazıyla on altı saat) sürer mi? Ben de sürdü. Bugün yazmış olduğum kodları incelerken bu süreyi nasıl kısaltırım, bu iş  bu kadar sürmemesi lazım diye düşünürken ne kadar fazla gereksiz kod kullandığımı gördüm.

İşe ilk olarak onları temizlemekle başladım. Sonra baktım ciddi bir hızlanma söz konusu…

Derken doğru döngülerin, doğru metotların hatta doğru değişkenlerin doğru yerde kullanılmasının hızı ne kadar etkilediğini görünce gözlerime inanamadım.

16 saatte ürettiğim 500.000 adet şifreyi 50 dakika 02 saniye gibi bir sürede üretince “her kod yazanın programcı olamayacağını” bir kez daha anladım…

Algoritma Nedir?

Bilgisayarda programlamaya başlamadan önce ilk öğrenilmesi gereken kısım algoritmadır. Algoritma bir programın en önemli temelini oluşturur. Programda kod yazmaya başlamadan önce en önemli kısım programın hangi dilde yazılacağı değil, o programın algoritmasının kağıt üzerinde tasarlanmasıdır.

ALGORİTMA
Tanımı: Belli bir durumdan başlayarak
sonlu sayıda adımda belli bir sonucu elde etmenin yöntemini tarif eden iyi tanımlanmış (well-defined) kurallar kümesine algoritma denir. Algoritmalar özel durumlara çözüm sunmazlar. Genel çözümlerin işlem basamaklarını içerirler.Algoritmanın en basit örneği bir yemek tarifidir. Ayran yapmak için:

  • Yoğurdu bir kaba koy
  • Karıştır
  • Aynı miktarda su ilave et
  • Biraz tuz ekle
  • Tekrar karıştır

Aşağıda basit bir sorun çözüm algoritmasına örnek verdim. Algoritmanın ne olduğunu anlatan güzel bir resim