DAA - Giriş
Algoritma, hesaplama, veri işleme ve otomatik akıl yürütme görevlerini gerçekleştiren bir problemi çözmek için bir dizi işlem adımından oluşur. Algoritma, sınırlı miktarda zaman ve mekan içinde ifade edilebilen verimli bir yöntemdir.
Algoritma, belirli bir sorunun çözümünü çok basit ve verimli bir şekilde temsil etmenin en iyi yoludur. Belirli bir problem için bir algoritmamız varsa, onu herhangi bir programlama dilinde uygulayabiliriz, yanialgorithm is independent from any programming languages.
Algoritma Tasarımı
Algoritma tasarımının önemli yönleri, minimum zaman ve alan kullanarak bir sorunu verimli bir şekilde çözmek için verimli bir algoritma oluşturmayı içerir.
Bir sorunu çözmek için farklı yaklaşımlar izlenebilir. Bazıları zaman tüketimi açısından verimli olabilirken, diğer yaklaşımlar hafıza açısından verimli olabilir. Ancak, hem zaman tüketiminin hem de bellek kullanımının aynı anda optimize edilemeyeceği unutulmamalıdır. Daha kısa sürede çalışacak bir algoritmaya ihtiyaç duyarsak, daha fazla belleğe yatırım yapmalıyız ve daha az bellekle çalışmak için bir algoritmaya ihtiyaç duyarsak, daha fazla zamana ihtiyacımız var.
Problem Geliştirme Adımları
Aşağıdaki adımlar hesaplama problemlerini çözmede yer almaktadır.
- Problem tanımı
- Bir modelin geliştirilmesi
- Bir Algoritmanın Tanımlanması
- Bir Algoritma Tasarlama
- Bir Algoritmanın doğruluğunu kontrol etme
- Bir Algoritmanın Analizi
- Bir Algoritmanın Uygulanması
- Program testi
- Documentation
Algoritmaların Özellikleri
Algoritmaların temel özellikleri aşağıdaki gibidir -
Algoritmaların benzersiz bir adı olmalıdır
Algoritmalar, açıkça tanımlanmış girdi ve çıktı kümelerine sahip olmalıdır
Algoritmalar, kesin işlemlerle iyi sıralanmıştır
Algoritmalar sınırlı bir süre içinde durur. Algoritmalar sonsuzluk için çalışmamalıdır, yani bir algoritma bir noktada bitmelidir
Sözde kod
Sözde kod, düz metinle ilişkili belirsizlik olmadan ve ayrıca belirli bir programlama dilinin sözdizimini bilmeye gerek kalmadan bir algoritmanın üst düzey tanımını verir.
Çalışma süresi, algoritmayı daha sonra sayılabilecek bir dizi temel işlemler olarak temsil etmek için Pseudocode kullanılarak daha genel bir şekilde tahmin edilebilir.
Algoritma ve Sözde Kod Arasındaki Fark
Algoritma, belirli bir görevi gerçekleştirmek için Turing-complete bilgisayar makinesi tarafından yürütülebilen bir işlemi tanımlayan bazı belirli özelliklere sahip resmi bir tanımdır. Genel olarak, "algoritma" kelimesi, bilgisayar bilimindeki herhangi bir üst düzey görevi tanımlamak için kullanılabilir.
Öte yandan, sözde kod, bir algoritmanın gayri resmi ve (genellikle ilkel) insan tarafından okunabilir bir açıklamasıdır ve birçok ayrıntılı ayrıntıyı bırakır. Bir sözde kod yazmanın stil kısıtlaması yoktur ve tek amacı, algoritmanın yüksek seviyeli adımlarını doğal dilde çok gerçekçi bir şekilde tanımlamaktır.
Örneğin, aşağıda Ekleme Sıralaması için bir algoritma verilmiştir.
Algorithm: Insertion-Sort
Input: A list L of integers of length n
Output: A sorted list L1 containing those integers present in L
Step 1: Keep a sorted list L1 which starts off empty
Step 2: Perform Step 3 for each element in the original list L
Step 3: Insert it into the correct position in the sorted list L1.
Step 4: Return the sorted list
Step 5: Stop
Yukarıda Ekleme-Sıralama algoritmasında bahsedilen yüksek seviyeli soyut sürecin nasıl daha gerçekçi bir şekilde açıklanabileceğini açıklayan bir sözde kod.
for i <- 1 to length(A)
x <- A[i]
j <- i
while j > 0 and A[j-1] > x
A[j] <- A[j-1]
j <- j - 1
A[j] <- x
Bu eğitimde, algoritmalar, pek çok açıdan C, C ++, Java, Python ve diğer programlama dillerine benzeyen sözde kod biçiminde sunulacaktır.