‘veri yapıları’ etiketli içerik
Bu çalışmada ilk giren ilk çıkar (FIFO) mantığı ile çalışan kuyruk veri yapısının basit bir uygulaması yer almaktadır. Bankada kuyruklar bulunmaktadır ve sıranın en önündekine her birim zamanda hizmet edilir. Hizmet süresi sıfır olan eleman sıradan çıkar. Yeni gelen müşteriler bekleme süresi en kısa olan kuyruğa eklenir.
Kaynak Kodlar:
Devamını Oku »
Shell sort algoritması insertion sort’un üzerine kurulu bir algoritmadır. Neredeyse sıralı olan dizileri sıralamada tercih edilir. Eleman sayısının yarısı kadar bir ofset değeri atanır ve elemanlar ofset aralıklarıyla insertion sort ile sıralanır ve bu işlem artan adım değerleri için yapılır. Daha sonra ofset yarılanır. Ofset değeri 1 den küçük olduğunda algoritma durur.
Kaynak Kodlar:
Devamını Oku »
Huffman algoritması ayrık durumları bulunma yüzdelerine göre değişken uzunlukta kodlama esasına dayanır. Gerçek hayattaki veriler çoğunlukla heterojen yapıdadır, ayrık durumların bulunma oranlarının birbirine yakın olmadığı durumlarda bu algoritma ile ortalama kod uzunluğu kısalarak yerden kazanç sağlanabilir.
Bu çalışmada yapılan Huffman algoritmasının basit bir simülasyonu olmakla birlikte herhangi bir sıkıştırma veya ağaç oluşturma söz konusu değildir. Verilen Huffman ağacına bakılarak girilen kod çözümlenmiştir.
Verilen bir grafın minimum spanning tree’sinin bulunması en düşük maliyet ile bütün noktaların kapsanması açısından özellikle istasyonlar arasında ağ kurulumunda önem taşır. Bu çalışmada Kruskal’ın algoritmasını kullanarak basit bir minimum spanning tree implementasyonu yapılmıştır. Kaynaktaki graf n tane edge’den(u,v ve ağırlık değeri içeren bir struct) oluşan bir dizi şeklinde gösterilmiştir. MST bulma aşamasında hangi noktaların hangi alt graflara bağlandığını takip edebilmek için label[] adlı bir dizi kullanılmıştır. Derste de gördüğümüz bu algoritma ile graf üzerindeki bir MST’yi kolaylıkla bulabilmekteyiz.
Devamını Oku »
Bağlı liste yapısını kullandığımızda eleman aramak başarım açısından oldukça maliyetli oluyordu. N tane eleman olması durumunda teorik olarak N tane elemanı kontrol etmek durumunda kalıyorduk. Binary search tree yapısı bize arama yapma ve eleman eklemede oldukça hızlı bir çözüm sağlıyor. log2(N+1)-1 tane karşılaştırma işlemi ile sonuca ulaşabiliyoruz.
Bu çalışmada ağaç yapısını gerçeklerken elemanların indislerinin daha kolay gözlenebilmesi ve algoritma takibinin daha kolay olması için dizi gösterimi kullanıldı. Dengeli olmayan ağaçlarda dizi yapısını kullanmak hafıza alanı açısından maliyetli olabilir. Bu yüzden bu örnekler oluşturma aşamasında uygun sıra ile dengeli olarak yerleştirildi. Ancak kullandığımız yapı self-balancing olmadığından zaman içerisinde yapılacak modifikasyonların bu dengeyi bozması olasıdır. Ayrıca elemanları sıralamak da bize ek işlem yükü getiriyor.
Daha geniş kapsamlı uygulamalarda struct yapısı kullanılarak işaretçiler yardımıyla yapılacak bir gerçekleme hafıza alanını daha etkili kullanma adına daha mantıklı olacaktır. Eğer bizim için en önemli ölçüt arama hızı ise self balancing tree yapısı alternatif olarak düşünülebilir.
Devamını Oku »
Bağlı listeler genelde dinamik yapılar kullanılarak gerçeklenir ancak bu örnekte kolay anlaşılır olması açısından dizi gösterimi kullanılmıştır.
Kaynak Kodlar:





