# Algoritma

Adres: https://softwaredictionary.org/tr/terimler/algorithm
Kategori: Programlamanın Temelleri
Son güncelleme: 2026-09-29
İngilizcesi: Algorithm
Okunuşu: elgıridım

Kısaca: Algoritma, bir listeyi sıralamak ya da en kısa yolu bulmak gibi bir sorunu çözmek veya bir işi tamamlamak için izlenen, sonlu ve adım adım yönergeler bütünüdür.

## Algoritma nedir?

Algoritma, bir girdiyi istenen bir çıktıya dönüştürmek için hazırlanmış kesin bir tariftir. Her adımı, onu izleyen herkesin ya da herhangi bir bilgisayarın aynı sonuca ulaşacağı kadar açık biçimde belirtir. Algoritmalar programlama dillerinden bağımsızdır: aynı algoritma Python'da, JavaScript'te ya da kâğıt üzerinde yazılabilir.

Yemek tarifi, algoritma için günlük hayattan iyi bir benzetmedir. Tarif malzemeleri (girdi) sıralar, sıralı adımları verir ve hazır bir yemekle (çıktı) biter. Yazılımda bilinen örnekler arasında, sıralı bir listeyi sürekli ikiye bölerek içindeki bir öğeyi bulan ikili arama (binary search) ile `Array.prototype.sort` gibi işlevlerin arkasındaki sıralama algoritmaları yer alır.

Farklı algoritmalar aynı sorunu çok farklı verimlilikte çözebilir. Geliştiriciler bunları, girdi büyüdükçe çalışma süresinin ya da bellek kullanımının nasıl arttığını anlatan Big O gösterimiyle karşılaştırır. Örneğin bir listedeki her öğeyi tek tek denetlemek O(n), ikili arama ise O(log n) karmaşıklığındadır; büyük listelerde ikincisi çok daha hızlıdır.

Algoritma, program ile aynı şey değildir. Algoritma fikirdir, yani mantıksal adım dizisidir; program ise bir ya da birkaç algoritmanın belirli bir dilde, çalışması için gereken her şeyle birlikte somut hâle getirilmiş uygulamasıdır.

## Önemli noktalar

- Algoritma, bir girdiyi çıktıya dönüştüren sonlu ve sıralı adımlar bütünüdür.
- Dilden bağımsızdır; kod onu ifade etmenin yalnızca bir yoludur.
- Verimlilik, zaman ve bellek için Big O gösterimiyle anlatılır.
- Klasik örnekler arasında arama, sıralama ve en kısa yol algoritmaları vardır.

## Örnek: JavaScript ile ikili arama

```javascript
// Find target in a sorted array; return its index or -1
function binarySearch(sorted, target) {
  let low = 0;
  let high = sorted.length - 1;
  while (low <= high) {
    const mid = Math.floor((low + high) / 2);
    if (sorted[mid] === target) return mid;  // found it
    if (sorted[mid] < target) low = mid + 1; // search the right half
    else high = mid - 1;                     // search the left half
  }
  return -1; // not found
}

binarySearch([2, 5, 8, 12, 16], 12); // 3
```

## Sık sorulan sorular

**Algoritma ile program arasındaki fark nedir?**

Algoritma, bir sorunu çözmek için izlenen soyut adım dizisidir. Program ise bu algoritmanın, genellikle başka birçok algoritmayla birlikte, bir bilgisayarın çalıştırabilmesi için belirli bir programlama dilinde yazılmış somut uygulamasıdır.

**Big O gösterimi nedir?**

Big O gösterimi, girdi boyutu büyüdükçe bir algoritmanın çalışma süresinin ya da bellek kullanımının nasıl arttığını anlatır. Örneğin O(n), işin girdiyle doğru orantılı büyüdüğü anlamına gelir; O(1) ise girdi ne kadar büyük olursa olsun işin aynı kaldığını gösterir.

**Yazılımcı olmak için algoritma bilmem gerekir mi?**

Her algoritmayı ezberlemeniz gerekmez; ancak arama ve sıralama gibi yaygın olanları anlamak ve verimliliği değerlendirmeyi bilmek daha hızlı kod yazmanıza yardımcı olur. Algoritma soruları teknik mülakatlarda da sık karşınıza çıkar.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
