Algoritma Nedir?

Algoritma Nedir?

Algoritma, problemi çözmek veya belirli bir hesaplama yapmak için kullanılan bir prosedürdür. Cihazlarımızın doğru komutlara uymasını ve istek üzerine doğru sonuçları vermesini sağlamak için işletim sistemlerinde yerleşik olarak bulunan herhangi bir bilgisayar programının temel bileşenidirler. Algoritmik yaklaşımda çözüm için yöntemlerden en uygun olan seçilir ve yapılması gerekenler adım adım ortaya konulur , bu adımların sıralamasına dikkat edilmelidir . Aslında algoritmalarla hayatımızın her alanında karşılaşırız. Günlük hayatımızdan bir örnek vermek gerekirse, yemek yaparken, o yemeğin tarifindeki adımlar aslında bir algoritmadır.

Algoritma Türleri

1.Kaba Kuvvet (Brute Force) Algoritması 

Bir problem için en basit yaklaşımdır. Bir sorun gördüğümüzde bulmaya gelen ilk yaklaşımdır.

Örneğin; sıralı arama

2. Basit Özyinelemeli (Simple Recursive) Algoritma

Özyinelemeye dayanır. Bu durumda, bir problem birkaç alt parçaya bölünür ve aynı fonksiyon tekrar tekrar çağrılır.

      Örneğin; Hanoi kuleleri, İnorder/Postorder ağaç dolaşımları

3. Geri İzleme (Backtracking) Algoritması

Geri izleme algoritması temelde tüm olası çözümler arasında arama yaparak çözümü oluşturur. Bu algoritmayı kullanarak, kriterleri takip ederek çözümü oluşturmaya devam ediyoruz. Bir çözüm başarısız olduğunda, başarısızlık noktasına geri döner ve bir sonraki çözümü oluştururuz ve çözümü bulana veya tüm olası çözümlere bakılana kadar bu işleme devam ederiz.

     Örneğin; Queens sorunu, sudoku

4. Arama (Searching) Algoritması

Arama algoritmaları, belirli bir veri yapısındaki öğeleri veya öğe gruplarını aramak için kullanılanlardır. Yaklaşımlarına veya öğenin bulunması gereken veri yapısına göre farklı türlerde olabilirler.

5. Sıralama (Sorting) Algoritması 

Sıralama, bir grup veriyi ihtiyaca göre belirli bir şekilde düzenlemektir. Bu işlevi gerçekleştirmeye yardımcı olan algoritmalara sıralama algoritmaları denir. Genel olarak sıralama algoritmaları, veri gruplarını artan veya azalan bir şekilde sıralamak için kullanılır.

6. Karma (Hashing) Algoritması

Karma algoritmalar, arama algoritmasına benzer şekilde çalışır.

7. Böl Ve Fethet (Divide & Conquer) Algoritması

Bu algoritma, bir problemi alt problemlere ayırır, tek bir alt problemi çözer ve nihai çözümü elde etmek için çözümleri bir araya getirir. 3 adımdan oluşur: Böl,çöz,birleştir.

    Örneğin; hızlı sıralama, sıralama birleştirme

8.Açgözlü (Greedy) Algoritması 

Bu tür bir algoritmada çözüm parça parça oluşturulur. Bir önceki bölümün en fazla faydayı sağlayan çözümü, bir sonraki bölümün çözümü olarak oluşturulur.

     Örneğin; Huffman kodlaması, Dijkstra algoritması

9. Dinamik Programlama (Dynamic Programming) Algoritması

Bu algoritma, sorunun aynı bölümünün tekrar tekrar hesaplanmasını önlemek için zaten bulunan çözümü kullanma kavramını kullanır. Problemi birbiriyle örtüşen daha küçük alt problemlere böler ve çözer.

     Örneğin; Fibonacci dizisi

10. Rastgele Algoritma

Bu algoritmada, anında fayda sağlaması için rastgele bir sayı kullanırız. Rastgele sayı, beklenen sonuca karar vermede yardımcı olur.

Uygulama

Bilgisayar algoritmasına örnek verelim. Kullanıcının girdiği dört sayının ortalamasını görüntüleyen algoritmayı yazalım:

 A0 --> Başla

 A1 --> Sayaç=0 (Sayaç'ın ilk sayısı 0 olarak başlar.)

 A2 --> Sayı=? : T=T+Sayı (Sayıyı giriniz. T'ye sayıyı ekle ve T'yi göster.)

 A3 --> Sayaç=Sayaç+1 (Sayaç'a 1 ekle ve sayacı göster.)

 A4 --> Sayaç<4 ise A2'ye git. (Eğer sayaç 4'ten küçükse Adım 2'ye git.)

 A5 --> O=T/4 (Ortalama için T değerini 4'e böl)

 A6 --> O'yu göster. (Ortalamayı göster.)

 A7 --> Dur

Light