AÖF Soru Bankası

AlgoritmalarÜnite 1 Soru-Cevap

Algoritmalar (BIL204U) soru-cevapları.

Algoritma nedir?

Algoritmalar bir problemin çözümü ya da bir hesaplamanın yapılması için hazırlanmış ve genellikle bilgisayarlar tarafından yürütülen yönerge kümeleridir. Algoritmalar verileri girdi olarak alan, bu veriler üzerinde iyi tanımlanmış süreçleri işleten ve bu işlemlerin sonucunda çıktı üreten hesaplama prosedürleridir. Algoritmalar hesaplamalı problemleri (computational problems) çözen araçlar olarak da ele alınabilir.

Hesaplamalı problem nedir?

Hesaplamalı problemler, matematiksel olarak ifade edilebilen problemlerdir.

Döngü nedir?

Döngüler algoritmalar içinde belirli bir şart sağlandığı sürece tekrar tekrar işletilen kod bloklarıdır.

Algoritmaların tarihçesini kısaca açıklayınız?

Algoritma kavramı Antik Çağlardan beri bilinmektedir. Babilli (MÖ 2500) ve Mısırlı (MÖ 1550) matematikçilerin bölme işlemleri için algoritmalar kullandıkları bilinmektedir. Yunanlı (MÖ 240) matematikçilerin asal sayıları bulmak için Eratosten Kalburunu, en büyük ortak bölenleri bulmak için de Öklid algoritmasını kullandıkları bilinmektedir. 9. yüzyılda Kindî gibi Arap matematikçilerin şifreleri kırabilmek için frekans analizlerine dayalı şifreleme algoritmaları kullanmıştır. Tarihte Mısır, Yunan ve Roma uygarlıklarında, hesaplama işlerinin herkes tarafından seri biçimde yapılabilmesi amacıyla dört işlem ve bazı basit fonksiyonlar için algoritmaların yaygın olarak kullanıldığı görülmüştür. Daha yakın zamanlarda ise (18.–19. yy.) Araplar ve Ruslar tarafından iki temel çarpma algoritması geliştirilmiş ve kullanılmıştır.

Algoritma ismi nereden gelmektedir?

Algoritma ismi 9. yüzyılda bugün Özbekistan sınırları içinde yer alan Harezm topraklarında yaşamış Muhammed İbn Musa el Harezmi’den gelir. Büyük bir matematikçi, coğrafyacı ve astronom olan Harezmi, cebirin sistemleştirilmesi (cebirsel işlemler için algoritmalar oluşturulması) ve küresel geometri alanındaki algoritmik çalışmalarıyla matematiğe önemli katkılar yapmıştır.

Algoritmaların özellikleri nelerdir?

Algoritmaların özellikleri girdi, çıktı, açıklık, sonluluk, başarım ve performans ile bağımsızlıktır.

Girdi nedir?

Girdi, algoritmanın üzerinde işlem yaparak çıktı üreteceği veri kümesini tanımlar.

Çıktı nedir?

Çıktı, verilen girdi kümesinin işlenmesi sonucu üretilen veridir.

Algoritmalarda başarım ve performans nedir?

Algoritmanın başarım ve performansı verilen bilgisayar kaynaklarının kullanımı ile ilgili bir kavramdır. Başarım, algoritmanın tanımlanan bilgisayar kaynakları ile çıktı üretebilmesini ifade eder. Performans ise algoritmanın işlem zamanı ve bellek alanını etkin kullanımı ile ilgilidir.

Algoritmaların verimliliğini açıklayınız?

Algoritmalar bilgisayar programlarının temelini oluşturur. Bir bilgisayar sisteminde aynı anda onlarca program (uygulama) yürütülmeye çalışılır. İşletim sistemlerindeki görev yöneticiler incelendiğinde sistem üzerinde bir anda çalıştırılmakta olan uygulama sayısı görülebilir. Her bir görevin işletilmesi için işlemci zamanı ve ana bellek alanı (RAM) zorunlu olduğundan, bilgisayar sistemlerindeki en değerli kaynaklar bu ikisidir. Bu iki kaynağın tükenmesi bilgisayar sisteminin çalışamaz hâle gelmesi anlamına gelmektedir. Bu nedenle algoritmaların verimliliği, çözüm üretmek için kullandıkları bilgisayar kaynakları dikkate alınarak belirlenir.

Zaman karmaşıklığı nedir?

Algoritmanın çözüm üretmek için harcadığı işlemci zamanı, algoritmanın zaman karmaşıklığını ifade eder.

Alan karmaşıklığı nedir?

Algoritmanın alan karmaşıklığı çözüm üretmek için harcadığı bellek alanı ile ilgilidir.

Algoritma türleri nelerdir?

Algoritma türleri arama motoru, şifreleme, açgözlü, özyinelemeli, kaba güç, sıralama, gerileme, böl ve fethet, dinamik programlama, karıştırma, rastgele algoritmalar olmak üzere çeşitlidir.

Arama motoru algoritmalarını açıklayınız?

Metinler ve işleçleri girdi olarak (ör.: “izmir VE konser”) alan, ilgili veri tabanı üzerinde arama yapıp olası sonuçları öneren (ör.: internet siteleri, restoranlar, kitaplar, kişiler) algoritmalardır. İnternet siteleri ya da kütüphanelerdeki kitapları bulmaya yarayan arama motorlarında bu algoritmalar kullanılmaktadır.

Şifreleme algoritması nedir?

Girdi olarak verilen bilgileri korumak amacıyla, bu verileri işleyerek dönüştüren algoritmalardır.

Özyinelemeli (recursive) algoritmalar nedir?

Özyinelemeli algoritmalar bir problemin çözümüne ulaşabilmek için kendi kendilerini sürekli çağırırlar. Bu algoritmaların en bilinen örneği, bir sayının faktöriyelinin hesaplanmasıdır.

Açgözlü (greedy) algoritmaları açıklayınız?

Bu algoritmalar optimizasyon problemlerinin çözümü için bilinen verilere dayalı kararlar verir. Kısıtlı verilere dayanarak çözüm arandığından bu algoritmalar en iyi çözümü garanti etmezler.

Kaba güç (brüte-force) algoritmalarını açıklayınız?

Kaba güç algoritmaları verilen problemin çözümü herhangi bir strateji geliştirmeden tüm olasılıkları deneyen algoritmalardır.

Sıralama algoritmalarını açıklayınız?

Sıralama algoritmaları girdi olarak verilen veri setini, belirlenen kriterlere göre düzene koyan algoritmalardır.

Gerileme algoritmalarını açıklayınız?

Gerileme algoritmaları, verilen problemleri, gelişen çözüm ağaçları oluşturarak çözmeye çalışan algoritmalardır. 

Böl ve fethet (divide and conquer) algoritmaları nasıl çalışır?

Böl ve fethet algoritmaları verilen problemleri üç aşamada çözümler. Öncelikle problem durumu daha küçük problem durumlarına bölünür. Her bir alt problem kendi içinde çözümlendikten sonra bu çözümler birleştirilerek ana problemin çözümüne ulaşılır. Böl ve fethet algoritmalarının en klasik uygulamalarından biri tümleştirerek ayıklama (merge sort) sıralama algoritmasıdır.

Dinamik programlama algoritmalarını açıklayınız?

Dinamik programlama algoritmaları problemleri küçük alt problemlere bölerek çözümler.

Fibonacci dizisi nedir?

Fibonacci dizilerinde bir elementin değeri kendisinden önce gelen iki elementin değerinin toplamı yoluyla bulunur. Bu dizide elementlerin sıra numarası arttıkça elementlerin birbirine oranı altın orana (1,618) yaklaşır.

Karıştırma (hasting) algoritmalarını açıklayınız?

Karıştırma algoritmaları girdi olarak verilen herhangi bir uzunluktaki değerleri karıştırma fonksiyonuna tabi tutarak bir örnek çıktılar üretir. Üretilen çıktılar verilen girdinin uzunluğuna ya da içeriğine bakılmaksızın aynı uzunluktadır.

Bu ünitenin sorularını uygulamada çözŞıklar, doğru cevaplar ve süreli sınav modu AÖF Soru Bankası uygulamasında