![]() |
![]() |
![]() | #1 | |
Çevrimdışı Tefeci'nin Kızı ![]() IF Ticaret Sayısı: (0) | Algoritma Nedir, Algoritma Analizi nasıl yapılır? [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] Algoritma Nedir? Algoritma, istenen çıktıyı elde etmek için belirli bir sırayla yürütülecek bir dizi talimatı tanımlayan adım adım bir prosedürdür. Algoritmalar genellikle temel, dillerden bağımsız, olarak oluşturulur yani bir algoritma birden fazla programlama dilinde uygulanabilir. Veri yapısı açısından, algoritmalar arama, sıralama, ekleme, güncelleme, silme olarak kategorilerine ayrılabilir. Bir Algoritmanın Özellikleri Tüm prosedürlere algoritma denemez. Bir algoritma aşağıdaki özelliklere sahip olmalıdır. Açık - Algoritma açık olmalıdır. Adımlarının (veya aşamalarının) her biri ve bunların girdi / çıktıları açık olmalı ve sadece bir anlam içermeli. Girdi - Bir algoritmanın 0 veya daha fazla iyi tanımlanmış girdisi olmalıdır. Çıktı - Bir algoritmanın 1 veya daha fazla iyi tanımlanmış çıktısı olmalı ve istenen çıktıyla eşleşmelidir. Sonluluk - Algoritmalar, sınırlı sayıda adımdan sonra sona ermelidir. Uygulanabilirlik - Mevcut kaynaklar ile uygulanabilir olmalıdır. Bağımsız - Bir algoritma, herhangi bir programlama kodundan bağımsız olması gereken adım adım talimatlara sahip olmalıdır. Bir Algoritma Nasıl Yazılır? Algoritmalar yazmak için iyi tanımlanmış standartlar yoktur. Aksine, soruna ve kaynağa bağlıdır. Algoritmalar hiçbir zaman belirli bir programlama kodunu desteklemek için yazılmaz. Tüm programlama dillerinin döngüler (do, for, while), flow-control (if-else) vb. gibi temel kod yapılarını paylaştığını bildiğimiz gibi, bu ortak yapılar bir algoritma yazmak için kullanılabilir. Algoritmaları adım adım yazıyoruz, ancak her zaman böyle değildir. Algoritma yazma işlemi bir işlemdir ve sorun etki alanı iyi tanımlandıktan sonra yürütülür. Yani, kendisi için bir çözüm tasarladığımız problem alanını bilmeliyiz. Bir örnek kullanarak algoritma yazmayı inceleyelim. Sorun - İki sayı toplamak ve sonucu görüntülemek için bir algoritma tasarlayalım. Adım 1 - BAŞLAT Adım 2 - Üç tamsayı a, b ve c tanımlayın Adım 3 - a ve b'nin değer atamalarını yapın Adım 4 - a ve b değerlerini toplayın Adım 5 - Adım 4'ün çıktısını c'ye kaydedin Adım 6 - c değerini yazdır Adım 7 - DURDUR Algoritmalar programcılara programı nasıl kodlayacağını anlatır. Alternatif olarak, algoritma şu şekilde yazılabilir: Adım 1 - TOPLAMAYI BAŞLAT Adım 2 - a ve b değerlerini alın Adım 3 - c ← a + b Adım 4 - c değerini ekrana yaz Adım 5 - DURDUR Algoritmaların tasarımında ve analizinde, bir algoritmayı tanımlamak için genellikle ikinci yöntem kullanılır. Analistin tüm istenmeyen tanımları göz ardı ederek algoritmayı analiz etmesini kolaylaştırır. Hangi işlemlerin kullanıldığını ve sürecin nasıl aktığını gözlemleyebilir. Adım numaraları yazmak isteğe bağlıdır. Belirli bir sorunun çözümünü bulmak için bir algoritma tasarlıyoruz. Bir problem birden fazla yolla çözülebilir. Bu nedenle, belirli bir sorun için birçok çözüm algoritması türetilebilir. Algoritma Analizi Bir algoritmanın etkinliği, uygulamadan önce ve uygulamadan sonra iki farklı aşamada analiz edilebilir. Priori Analizi - Bir algoritmanın teorik analizidir. Bir algoritmanın etkinliği, diğer tüm faktörlerin, örneğin işlemci hızının sabit olduğu ve uygulama üzerinde hiçbir etkisi olmadığı varsayılarak ölçülür. Posterior Analizi - Bu bir algoritmanın deneysel bir analizidir. Seçilen algoritma programlama dili kullanılarak uygulanır. Bu daha sonra hedef bilgisayar makinesinde yürütülür. Bu analizde, çalışma süresi ve gerekli alan gibi gerçek istatistikler toplanır. Algoritma analizi, ilgili çeşitli işlemlerin yürütülmesi veya çalışma süresi ile ilgilidir. Bir işlemin çalışma süresi, işlem başına yürütülen bilgisayar talimatı sayısı olarak tanımlanabilir. Algoritma Karmaşıklığı X'in bir algoritma olduğunu ve n'nin giriş verilerinin boyutu olduğunu varsayalım, X algoritması tarafından kullanılan zaman ve alan, X'in verimliliğine karar veren iki ana faktördür. Zaman Faktörü - Zaman, sıralama algoritmasındaki karşılaştırmalar gibi önemli işlemlerin sayısı hesaplanarak ölçülür. Alan Faktörü - Alan, algoritmanın gerektirdiği maksimum bellek alanı sayılarak ölçülür. Bir f(n) algoritmasının karmaşıklığı, çalışma süresini ve/veya gerekli depolama alanını giriş verilerinin boyutu olarak n cinsinden verir. Alan Karmaşıklığı Bir algoritmanın alan karmaşıklığı, algoritmanın yaşam döngüsünde ihtiyaç duyduğu bellek alanı miktarını temsil eder. Bir algoritmanın gerektirdiği alan, aşağıdaki iki bileşenin toplamına eşittir. Sorunun boyutundan bağımsız olarak belirli verileri ve değişkenleri depolamak için gereken bir boşluk olan sabit bir bölüm. Örneğin, kullanılan basit değişkenler ve sabitler, program boyutu vb. Değişken bölüm, boyutu sorunun boyutuna bağlı olan değişkenler için gereken bir alandır. Örneğin, dinamik bellek ayırma, özyineleme yığın alanı vb. Zaman Karmaşıklığı Bir algoritmanın zaman karmaşıklığı, algoritmanın tamamlanması için gereken süreyi temsil eder. Zaman gereksinimleri sayısal bir fonksiyon T (n) olarak tanımlanabilir; burada T (n), her bir adımın sabit zaman tüketmesi koşuluyla adım sayısı olarak ölçülebilir.
__________________ ''Zamanın Eli Değdi Bize Artık Aynı Değiliz İkimiz de'' Kullanıcı imzalarındaki bağlantı ve resimleri görebilmek için en az 20 mesaja sahip olmanız gerekir ya da üye girişi yapmanız gerekir. | |
| ![]() |
![]() |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
![]() | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
Algoritma Nedir? | Violent | Sözlük | 0 | 10 Şubat 2014 23:41 |
Google'dan 17,5 saatte bir yeni algoritma! | System | Arama Motorları Haberleri | 1 | 01 Eylül 2011 18:52 |
C Algoritma Geliştirme.. | toXic | C ve C++ | 0 | 08 Mart 2010 20:53 |