Temel Yazılım Algoritmaları

Veri Yapısı ve Algoritmaları Bilmek:

Veri yapısı ve algoritmaları bilmek iyi bir yazılımcı olabilmenin ilk adımı olarak görülmektedir. Programlama dillerinin temeli algoritmaya dayanmaktadır. Algoritma aslında problem çözme becerimizle alakalıdır. Yazılım dünyasında fark yaratanlar, veri yapılarına hakim ve algoritma becerileri gelişmiş kimselerdir.

Yazılım, var olan bir problemi çözmek amacıyla bilgisayar dili kullanılarak bilgisayarın donanımını yönlendiren talimatlar ve veriler bütünüdür[1]. Yazılım için çeşitli diller mevcuttur. Bunlardan bazıları Java, Angular, C++'dır.

Algoritma, en basit tanımıyla bir problemi çözmek için tasarlanan yoldur. Matematik dilinde sonlu işlemler kümesi olarak da tanımlanmaktadır. Bir problemin çözümü için gereken tüm işlemlerin basit, mantıksal, net ve sıralı bir şekilde belirtilmesi algoritmadır.

Değişken, bir algoritmanın başlatılması için programlama mantığı içinde dışarıdan gelen girdilere verilen addır. Algoritmalardaki döngü ve işlemler değişkenler üzerinden gerçekleştirildiğinden değişken tanımlama becerisi önemlidir.

Sort(Sıralama) Algoritmaları:

Birden fazla ögeyi düşükten yükseğe ya da yüksekten düşüğe alfabetik olarak ya da belirli bir sırayla yeniden düzenlemektedir[2].

Sort Algoritmalar[3]; Insertion(Eklemeli)Sort Algoritmalar, Selection(Seçerek) Sort Algoritmalar, Heap(Yığım) Sort Algoritmalar, Merge(Birleştirmeli) Sort Algoritmalar, Quick(Hızlı) Sort Algoritmalar, Counting(Sayma) Sort Algoritmalar şeklinde olabilir[4].

Search(Arama) Algoritmaları:

Sayısal ortamda bulunan verilerin bilgi kümesi içerisinden anahtar sözcükle çekilerek elde edilmesini sağlamaktadır.

Search Algoritmaları; Linear(Doğrusal) Search Algoritmalar, Binary(İkili) Search Algoritmalar, Depth First(Derin Öncelikli) Algoritmalar, Breadth First(Yayılım Öncelikli) Algoritmalar şeklinde olabilmektedir[5].

https://commons.wikimedia.org/wiki/File:Binary_search_tree_example.gif

Dijkstra Algoritması[6] ile Trees(Ağaçlar)[7], Traversal(Geçiş) ve Graf (Çizge) veri yapılarının bilinmesi de gereklidir[8]. Algoritmalar ve veri yapıları ile akış şeması örneklerini inceleyerek işe başlanabilir[9].


[1] https://www.javatpoint.com/software-definition

[2]https://talentgrid.io/tr/yazilim-algoritmalari-nedir/  

[3] https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

[4] https://www.kadinyazilimci.com/siralama-algoritmalari-ii/

[5] https://tr.wikipedia.org/wiki/Arama_algoritmas%C4%B1

[6] https://tr.wikipedia.org/wiki/Edsger_Dijkstra

[7] https://visualgo.net/en

[8] https://tr.wikipedia.org/wiki/Graf_(matematik)

[9] https://www.javatpoint.com/search-algorithms-in-ai