asgari tarama ağacı (en kısa örten ağaç, minimum spanning tree)

Yazan: Şadi Evren ŞEKER Asgarai tarama ağacı, ağırlıklık bir ağda (weighted graph, yani her düğümü birbirine bağlayan yolların maliyeti (ağırlığı) olması durumu), bütün düğümleri dolaşan en kısa yolu verir. Örneğim aşağıdaki grafikte bütün düğümlere uğrayan en kısa yol işaretlenmiştir: asgari tarama ağacını veren en meşhur algoritmalar: Kruskal Algoritması Prims Algoritması Dijkstra Algoritması (Asgari tarama ağacının […]

Devam

alt program (subprogram, subroutine)

yazan: Şadi Evren ŞEKER bir programın herhangi bir alt parçasına verilen isimdir. Daha resmî tanımı için ilave olarak bu alt parçanın belirli bir amaca yönelik olması gerektiği söylenebilir. Yani programın herhangi bir alt parçası olmasının yanında bir amaç için bölünmüş parça’ya alt program diyebiliriz. Basitçe dilde bulunan fonksiyon (function), prosedür (procedure) , metod(method) veya herhangi […]

Devam

fonksiyon göstericileri (function pointer)

yazan: Şadi Evren ŞEKER fonksiyon göstericilerinin amacı, programlama dilinde bulunan fonksiyonları gösteren birer referans bilgisi tutmaktır. Bu sayede gösterilmekte olan fonksiyon için hafızada ayrılmış olan yere erişmek ve dolayısıyla örneğin fonksiyonun yerel değişkenlerine ulaşmak mümkündür. Aşağıda C dilinde yazılmış bir fonksiyon göstericisi kullanan kod örneği verilmiştir: #include #include void func(int); main(){ void (*fp)(int); fp = […]

Devam

En uzun Ortak Küme (longest common subsequence, Lcs)

yazan : Şadi Evren ŞEKER İki küme arasındaki ortak elamanların (sıralı olmak şartıyla) en uzun ortaklığını arar. Örnek: A-> {X,M,J,Y,A,U} B-> {M,Z,J,A,W,X,U} olarak verilmiş olsun. Bu iki kümenin, sırası bozulmadan ortak olan en uzun alt kümesi: LCS -> {M,J,A,U} olarak bulunur. Bu problem karmaşıklık açısından NP-hard problemlere bir örnektir. Aynı zamanda çözüm için önerilen yöntemler […]

Devam

Dinamik Programlama (Dynamic programming)

Yazan: Şadi Evren ŞEKER Bir problem tahlil ve çözüm yöntemi olan dinamik programlama yapı olarak parçala fethet yöntemine benzer. Tek farkı problemi parçalara böldükten sonra aynı problemin tekrarı olan parçaları bir kerede çözüp her tekrar için ayrı bir çözüm yapmamasıdır. Örneğin fibonacci serilerini ele alalım, Bu seriyi üreten örnek kod aşağıda verilmiştir: int fibonacci(int n) […]

Devam

parçala fethet yöntemi (divide and conquer)

yazan: Şadi Evren ŞEKER Bu yöntem algoritma analizinde çok kullanılan, bir algoritmayı tahlil etmek veya yeni bir algoritma oluşturmak için kullanılan yaklaşımlardan birisidir. Bu yaklaşıma göre problem ufak ve çözülmesi nispeten daha kolay olan parçalara bölünür. Her parça ayrı ayrı çözüldükten sonra sonuçlar birleştirilerek genel problemin çözümü elde edilir.

Devam