8 Aralık 2016 Perşembe

HEAPSORT QUICKSORT

   Heapsort ve quicksort ‘sıralama’ algoritmasıdır.

ØHeapsort max heap ve min heap olarak ikiye ayrılır.

ØHeapsort verilen değerlere göre arka planda bir ağaç oluşturur.

ØBir örnek ile açıklayacak olursak


Örneğin heapsortta 15, 19, 10, 7, 17, 16 sayılarını gösterecek olursak ağaç modeli aşağıdaki gibi olur.


 
Bu sayılarımızı max heap e göre düzenleyelim;

Üstteki yani ata’lardaki sayıların, çocuklarından küçük olup olmadığı kontrol edilir 

Min heapte ise tam tersi yani atalardaki sayılar daha küçük olup olmadığı kontrol edilir.



16 ve 10 sayısı kontrol ediliyor max heap örneği verdiğimiz ve atanın büyük olması gerektiği için 16 sayısı yukarı alınıyor.




Diğer ailemizin sıralamasını da kontrol ediyoruz

19 sayısı 7 ve 17den büyük olduğu için doğru bir sıralamadır.



Son ailemiz 15, 19 ve 16 ailemizi kontrol ediyoruz.

Amacımız atadaki sayının daha büyük olması olduğu için 19 sayısı ata’ya gelecektir.

Algoritmamızda önceki adımda 19 yerine 15  geldiği için 15. ailemizi kontrol ediyoruz.

Max heapte büyük sayının ata’da olması gerektiği için 17 sayısını yukarı alıyoruz.


15 ve 17 sayısını yer değiştirdik

17 ata’ya geldi.



Eleman silme ve diziyi düzenleme işlemine geldiğimiz zaman kökteki sayıyı yani 19 sayısını dışarı alıyoruz ve en alttaki sayıyı köke getirip max veya min heap özelliğine uyup uymadığını kontrol ediyoruz.

19 sayısını silip dizide son sıraya ekliyoruz



17 sayısı köke gelip 15 ata oluyor


17 sayısını silip çocuklarından hangisi daha büyükse onu köke getiriyoruz.

17 sayısını diziye ekleyeceğiz.


16 sayısı daha büyük olduğu için köke geliyor.


16 sayısını siliyoruz ve hangisinin köke gelmesi gerektiğini kontrol ediyoruz.

16 sayısını diziye ekliyoruz.


15 sayısı daha büyük olduğu için köke geliyor.

15 sayısını siliyoruz.

Çocuklarına bakıyoruz hangisi büyükse o köke gelecek

10 daha büyük olduğu için köke geliyor.

Daha sonra kökteki sayıyı siliyoruz. 

Son hali böyle oluyor


Quicksort’ta sıralama algoritmasıdır.

88,31,52,25,98,14,30,62,23,79 sayılarını örnek olarak alalım:)

Pivot değer bulmamız gerekiyor ilk eleman son eleman veya rastgele herhangi bir sayı olabilir.

Bu ortadaki sayıya pivot da denilmektedir.

Pivot değerimiz 52’ dir.



Algoritmayı tekrardan pivot değerden küçük ve büyük olarak sınıflandırıyoruz

Bu parçala fethet yaklaşımıdır.




İkiye ayırdığımız sağ ve sol taraftaki parçaları tekrardan ayrı ayrı olarak ikiye ayırıyoruz.

Birinci grup 25 ikinci grup 79 olmuştur.

ØÖnceki adımda 25 ve 79 olarak ayırdığımız grupları tekrardan orta değerden büyük ve küçük olarak ayırıyoruz.  

ØÖrneğin 14 ve 23 te 23 sayısını seçiyoruz 14 < 23 tür ve diğer adımlarda bu şekilde devam edilmiştir.

ØSonuç olarak sıralamamız 14, 23, 25, 30, 31, 52, 62, 79, 88, 98 dir
 




6 Aralık 2016 Salı

R STUDİO

                   

                                R HAKKINDA GENEL BİLGİLER 

Temeli S diline dayanır. R dilinin ilk sürümü “R core team” tarafından 29 Şubat 2000 tarihinde yayınlanmıştır. 

İstatistiki ve grafiksel veriler içerir. Doğrusal ve doğrusal olmayan modelleme,klasik istatistik testleri, zaman serileri analizi, sınıflandırma, kümeleme... Açık kaynak kod olması itibariyle geliştirilmeye çok yatkındır.

Etkin veri işleme ve saklama özelliğine sahiptir.
Dizi ve özellikle matris hesaplamalarında kullanılabilecek özel operatörler mevcuttur.



Genel olarak R dili;



  • Bir programlama dilidir.
  • İstatiksel bir pakettir.
  • Bir yorumlayıcıdır.
  • Özgür bir yazılımdır


  • Fakat R;

    • Bir veri tabanı değildir ama veri tabanlarına bağlanabilir

    • Kullanıcı dostu olmasa da java gibi diller aracılığıyla arayüz desteğine sahip bir yazılım geliştirme ortamıdır

    • Tablolardan oluşan yazılım paketi (Excel, Minitab gibi) değildir ama bunlara bağlanabilir

    • Profesyonel veya ticari desteğe tabi bir yazılım değildir.

    • Kapalı kutu yazılımlardan oluşan bir yazılım değildir.


      R dili ile aşağıda görüldüğü gibi kök alma, log işlemleri vb yapılabilir.


      log2(32)
      [1] 5

      sqrt(2)
      [1] 1.414214

      seq(0, 5, length=6)
      [1] 0 1 2 3 4 5

      plot(sin(seq(0,2*pi,length=100))



      Başka bir örnek verecek olursak ;

      R studio programına       

       

      Değerlerini yazdığımızda


      konsolda karşımıza bu veriler çıkacaktır. 


      Başka bir örnek verecek olursak ;




      Verilerini R Studio programımıza yazdıktan sonra ;




      Konsolda karşımıza bu veriler çıkacaktır. R programında basit olarak bu adımlar yapılabilmektedir.





    Kaynak : http://inet-tr.org.tr/inetconf19/sunum/16.pdf