Ana içeriğe geç

Algoritma

İngilizcesi
Algorithm
Okunuşu
elgıridım
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/algorithm

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.

Bir bakışta

En büyük sayıyı bulan bir algoritma: ilk sayıyı şimdiye kadarki en büyük kabul et, sıradaki her sayıyı onunla karşılaştırıp büyüğünü tut, sayı kalmayınca tuttuğun cevaptır. 7, 3, 9, 4 üzerinde çalışınca 9 cevabını verir.girdi73941İlk sayıyı şimdiye kadarkien büyük kabul et.2Sıradaki her sayı için:daha büyükse onu tut.3Sayı kalmayıncatuttuğun cevaptır.adım adımbakılanşimdiye kadarki en büyük77379949çıktı: 9
Adımlar sonlu ve kesindir; onları izleyen her kişi ya da bilgisayar, hangi dilde olursa olsun aynı cevabı bulur. Burada her sayıya bir kez bakılır: O(n).

Ö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 aramajavascript
// 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.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar