Algoritma Nedir? Niçin Kullanılır?

Bu yazımızda Algoritma Nedir? Niçin Kullanılır? gibi konuları işleyeceğiz. Sonrasında güzel bir algoritma örneği ile devam edeceğiz. Algoritma, bir sorunu çözmek veya bir görevi tamamlamak için bir dizi talimattır. Programlama algoritması, bir bilgisayarın sorunlarını çözmek için kullandığı bir tür reçetedir.

Programlama Algoritması Nedir?

Peki genel tanımı öğrendiğimize göre, gelin programlama algoritmasına yakından bakalım.

Bir programlama algoritmasını, bilgisayarın bir sorunu çözmesi veya bir hedefe ulaşması için gereken adımları tam olarak açıklayan bir tarif olarak düşünebilirsiniz. Hepimiz yemek tarifleri görmüşüzdür – tarif edilen yemeğin nasıl yapılacağına dair gerekli malzemeleri ve bir dizi adımı listelerler. Bilgisayar dilinde, bir tarifin adı prosedürdür ve içeriklere girdi denir. Bilgisayarınız prosedürünüze bakar, harfi harfine takip eder ve çıktı olarak adlandırılan sonuçları görürsünüz. Bir programlama algoritması, bir şeyin nasıl yapılacağını açıklar ve bilgisayarınız bunu her seferinde tam olarak harfi harfine uygulayacaktır.

Ancak, bir programlama algoritmasının bilgisayar kodu olmadığını unutmamak önemlidir. Genelde programcı hangi dilde çalışıyorsa, o dilde algoritmasını kurabilir. Algoritmaların bir başlangıcı, bir ortası ve bir sonu vardır. Bir diğer önemli özelliği ise içinde sadece görevi yerine getirmek için ihtiyacınız olanı içerir. Okuyan birinin merak edebileceği, bilgisayar dilinde genellikle belirsiz olarak adlandırılan, net olmayan hiçbir şey içermez.

Genel. anlamda her zaman bizi bir çözüme götürür ve karşılaştığımız problemler için en verimli çözüm olmaya çalışmaktadırlar. Üzerinde çalışırken adımları numaralandırmak genellikle iyi bir fikir olacaktır. Bazı insanlar ise akış şeması adı da verilen bir diyagram kullanmaktadır.

Programlama Algoritması Örneği

Bir algoritma, metin kullanan adımların bir listesi olarak veya akış şeması adı verilen şekiller ve oklar içeren bir resim olarak yazılabilir. Burada olabildiğince hepsinden kısa örnekler vermeye çalışacağız.

Algoritma Nedir? Niçin Kullanılır? Algoritma
Algoritma

Örneğimizin en üst kısmında, prosedürün tam olarak ne yapmasını istediğimizi (ne daha fazla, ne daha az) belirten, sade bir dil kullanılan adımların yalnızca numaralandırılmış bir listesi olduğuna dikkat edin. Alt kısım aynı algoritmadır ancak bu sefer bir akış şemasında (rota haritası gibi) şekiller ve oklar kullandık, böylece bir okuyucu yolculuğu görselleştirip sistemi aklında daha güzel canlandırabilir. Diagram örneği aşağıdaki gibidir:

Algoritma Nedir? Niçin Kullanılır? Algoritma
Örnek Diagram

Algoritma Türleri

Algoritmalar, bir görevi yerine getirmek için kullandıkları kavramlara göre sınıflandırılır. Birçok algoritma türü olsa da, bilgisayar bilimi algoritmalarının en temel türleri şunlardır:

Böl ve Yönet Algoritmaları

Sorunu aynı türden daha küçük alt problemlere bölün. Bu küçük problemleri çözün ve orijinal problemi çözmek için bu çözümleri birleştirin.

Kaba Kuvvet Algoritmaları

Tatmin edici bir çözüm bulunana kadar tüm olası çözümleri deneyin.

Rastgele Algoritmalar

Soruna bir çözüm bulmak için hesaplama sırasında en az bir kez rastgele bir sayı kullanın.

Açgözlü Algoritmalar

Tüm problem için en uygun çözümü bulma niyetiyle yerel düzeyde en uygun çözümü bulun.

Özyinelemeli Algoritmalar

Bir problemin en düşük ve en basit versiyonunu çözerek orijinal problemin çözümü bulunana kadar problemin giderek daha büyük versiyonlarını çözer.

Geri İzleme Algoritmaları

Sorunu, her biri çözülmeye çalışılabilecek alt problemlere bölün ancak istenen çözüme ulaşılmazsa, onu ileriye taşıyan bir yol bulunana kadar problemde geriye doğru hareket edin.

Dinamik Programlama Algoritmaları

Karmaşık bir problemi daha basit alt problemlerden oluşan bir koleksiyona ayırın, ardından bu alt problemlerin her birini yalnızca bir kez çözerek çözümlerini yeniden hesaplamak yerine ileride kullanmak üzere çözümlerinizi depolayın.

Aslında anlayacağımız üzere günümüzde aktif olarak kullanılan bir sürü algoritma türü bulunmaktadır. Bu noktada probleminizi en iyi şekilde belirlerseniz, bu yöntemlerini her birini kendi projelerinize uygulayabilirsiniz.