9 Mart 2014 Pazar

Java ile Bubble Sort - Kabarcık Sıralaması

Kabarcık sıralamasını burada uzun uzadıya anlatmaya gerek duymuyorum. Yok efenim uzun diziler için sıkıntı yaratır, yok notasyon vs. Bunlara hiç gerek yok. Zaten internette yığınla bilgi var. Fazla söze gerek yok, zaten kolay.

Aşağıda birazcık programlama bilgisi olanların rahatlıkla anlayabileceği bir java kodu var.

import java.util.Scanner;
public class BubbleSort {

    public static void main(String[] args) {

        
        Scanner input = new Scanner(System.in);
        
        int dizi[], elemanSayisi, takasEleman, sirasizDizi[];
        
        System.out.println("Kaç elemanlı bir tam sayı dizisi oluşturmak istiyorsunuz ?");
        elemanSayisi = input.nextInt();
        
        dizi = new int[elemanSayisi];
        sirasizDizi = new int[elemanSayisi];
        
        for int i=0; i<elemanSayisi; i++)
        {
            System.out.print(i+1 +". elemanı giriniz : ");
            dizi [i]= input.nextInt();
            sirasizDizi[i]= dizi[i];
        }
        
        for int i=1; i<dizi.length; i++ )
        {
            for int a=0; a<dizi.length-i; a++ )
            {
                if ( dizi[a] > dizi[a+1] )
                {
                    takasEleman = dizi[a];
                    dizi[a] = dizi[a+1];
                    dizi[a+1]= takasEleman;
                }
            }
        }
        
        System.out.println("\nGirilen dizinin sırasız hali aşağıdaki gibidir: \n");
        
        forint i=0; i<elemanSayisi; i++ )
        {
            if ( i == elemanSayisi-1 )
            {
                System.out.println(sirasizDizi[i] +" ");
            }
            else
            System.out.print(sirasizDizi[i] +"-");
        }
        
       
        System.out.println("Girilen dizinin sıralı hali aşağıdaki gibidir: \n");
        
        for int i=0; i<elemanSayisi; i++ )
        {
            if  ( i == elemanSayisi-1 )
            {
                System.out.println(dizi[i] +" ");
            }
            else
                System.out.print(dizi[i] +"-");
        }
        
    }
}

____________________________________________________________



11 Eylül 2012 Salı

İnternette Video İzleme Sorunu

Bazı sitelerin videolarının sizde açılmadığı zamanlar olmuştur. Yani bazı videolar açılıyor bazıları açılmıyor.  İnternette  birçok yazı var; ama hemen hiçbiri buna tam olarak bir çözüm getirmiyor. Hemen hepsi kulaktan dolma bilgiler gibi geldi bana. Geçenlerde bende de aynı sorun oluştu, internette sorun için önerilen şeylerin bana bir faydası olmadı. Yapılan yorumlardan da anlayabileceğiniz gibi birçok insana faydası olmamış. Biraz kurcaladıktan sonra sorunu düzelttim. Sizde de aynı sorun varsa aşağıdaki adımları uygulayarak sorunu düzeltmeniz mümkün.

  1. Öncelikle videonun üzerine gelin ve sağ tıklayın. 
  2. Buradan genel ayarları seçin. 
  3. Burası Flash Player ayarları yöneticisidir. Gelen ilk kısımda yeni sitelerin bu bilgisayarda bilgi kaydetmesine izin vermeden önce sor seçeneği işaretli mi ona bakın.
  4. Muhtemelen işaretlidir, önemli değil ilk seçenek de olabilir.
  5. Bunların hemen altında, siteye göre yerel depo ayarları var burayı tıklayın.
  6. Burada web sitesi adı, kullanılan depo ve depo erişimi var. Burada depo erişimi kısmına izin ver deyin ve çıkın.
  7. Videosu açılmayan sayfayı yenileyin.
  8. Video açılırken bu sitenin veri depolamasına izin ver diyecek. Buna birkez izin ver deyin. Ve işlem tamamdır.



Bundan sonra videoları izleyebilirsiniz.  Hadi geçmiş olsun..

19 Temmuz 2012 Perşembe

ESKİ (!) DOST..

Bir arkadaşım vardı, dost kısmından. Çok eskilere dayanıyordu dostluğumuz (!). Aynı şehir, aynı mahalle, aynı okul, sonra tekrar aynı şehir, aynı mahalle, birbirine çok yakın okullar vs. Aslında birazda zorunluluklar  bizi bir araya getirmiş şimdi böyle görüyorum olayları. Bütün bunlara rağmen anlaşamadığımız bir çok nokta olduğu açıktı. Bu yazıda bir dost ya da arkadaş ile ilgili genel bir değerlendirme ve bu değerlendirmeye bağlı bir sonuç olacak.

Sürekli sorunlar çıkıyordu aramızda. Çok uzun zamandır gülerek ya da sevişerek ayrıldığımızı hatırlamıyorum. Her ayrıldığımızda kesin olarak kırgın ya da kızgın ayrılıyoruz. Bu her iki taraf içinde geçerli. 

Daima birbirimizi suçluyoruz. İkimizde haklıyız; fakat bunu kabullenemiyoruz. Ha sözde, konuşurken belkiler havada uçuşuyor. Ama sadece ağızdan çıkıyor, kalben ya da mantıken haksız olduğumuzu kabul edemiyoruz.    Daima birimiz haklı, diğerimiz haksız. Bunu, özellikle birkaç saat önce daha iyi anladım. 

Bu güne kadar onlarca ya da yüzlerce kez ayrılıp barıştık. Her defasında iyi şeylerle temenni ettik birbirimizi. Lakin yarım saat sonra aynı sorun. Sanki az önce konuşanlar biz değildik.  

Her ikimizinde suçlamaları aynı. Ona göre ben A fiilini yapmışım, ironisi bu ya bana göre de o A fiilini yapmış. İkimizde aynı şeylerle birbirimize ithamlarda bulunuyoruz. Ee? Hata kimde ya da nerede? Buna bir çözüm getiremedik bir türlü.

Biraz önce bir  düşündüm, beraberdik. Aynı durum. Değişmiyor, değiştiremiyoruz. O konuşurken biraz uzaklara gittim. Açıkçası o andan itibaren fazla dinlemedim. Çünkü aynı şeylerden bahsediyoruz devamlı. Ayrı kaldığımız zamanlarda bana hissettirdikleri ne? Yokluğu bana ne kattı, varlığı bana ne kattı? 

 Doğru cevap:  HİÇBİR ŞEY ya da ÇOK AZ ŞEY! 

Sanırsam onun içinde aynı.

Sonra geri döndüm aynı şeylere devam!!! Yani kendimi sözcüklerden geri kalmış hissetmedim.

Uzun zamandan beri yanında sıkılmaya başlamıştım. Muhtemelen aynı durum onun için de geçerli. Soruyorum kendime niye onunla her buluştuğumda içim daralıyor ya da eve her geldiğimde gergin oluyorum? 

Ve bu gece, bu yazıyı yazmadan az önce bir karar aldım. Onu hayatımdan çıkartıyorum. Radikal bir karar!

Şu söze geleceğim, yanındayken huzur bulmadığınız bir kişi ile aynı yolda yürümeyin. Size bir  şey katmayan ya da sizin bir şey katamadığınız bir kişi ile aynı yolda yürümeyin. Yokluğu bir şey ifade etmeyen bir insanla aynı yolda yürümeyin.

Benden size blog usulü tavsiye. 

1 Temmuz 2012 Pazar

INSERTION SORT


  • Insertion_sort verilen dizideki elemanları, kendi isteğimiz doğrultusunda sıralamamıza yardımcı olur.
  • Yerinde sıralama yapar.
  • Eğer verilen dizi sıralı ise T(n)=Q(n) 'dir.
  • Eğer verilen dizi ters sıralı ise T(n)=Q( n2 )'dir.
  • Eğer verilen dizi karışık sıralı ise T(n)=Q( n2 )'dir.
_____________________________________________________

Algoritması:

insertion_sort(A)

  for j <-- 2 to length [A]
      do key <-- A[j]
         i <-- j-1
     
         while i>0  and A[i] > key
               do A [i+1] <-- A[i]
                    i <-- i-1

         A[i+1] <--key

_____________________________________________________

Bir örnek vermek gerekise, bize verilen dizi:

A[ ] ={5,2,4,6,1}  olsun. Şimdi bu algoritmaya göre bu diziyi sıralayalım. Burada dizinin ilk elemanı A[0] değil A[1] 'dir.

Burada ilk olarak,
i=1  ,  j=2  ,  key=2  olur.   ( Burada i ve j dizinin ilk iki elemanı olduğu için 1 ve 2 değerini aldı. )

for döngüsünün içindeki while döngüsüne girince karşılaştırma başlar. A[1]>key olduğu için (5>2),  A[i] ile A[i+1] yer değiştirir. Yani başlangıç kısmını düzelterek yazarsak,

A[ ]={2,5,4,6,1} olur dizinin yeni hali.

Hemen ardından,

j=3  ,  key=4  , i=2 olur.  ( Bu kısım for döngüsünün hemen altındaki while döngüsüne girmeden önce hallediliyor. )

While döngüsünde A[2] ile key karşılaştırılıyor. A[2] daha büyük olduğu için key ile (yani  A[3] ile) A[2] yer değiştirir.

Dizinin yeni hali:

A[ ] ={2,4,5,6,1] olur.

j=4  ,  key=6  , i=3 olduğunda bir değişiklik olmayacağı açıktır. (5<6 olduğu için) Dizi aynen kalır.

j=5  ,  key=1 ,  i=4   olduğunda   A[4]=6 > 1 olduğu için yer değiştirirler.

Dizinin yeni hali:


A[ ] = {2,4,5,1,6} olur. while içinde  i bir azalıyordu. O zaman i=3 olur. Key de A[4] (yani 1)  olur. while döngüsündeki şart yeniden sağlandığı için ( A[3] >  A[4] ) tekrar yer değiştirilir. Key yine 1'dir. Burada 1 en başa gelinceye kadar yer değiştirme olur. Key hep 1 olacak i de bir azalacak. Ne zaman ki while döngüsündeki şart sağlanmıyorsa o zaman bu işlem duracak. 


Döngü sonlandığında, dizinin yeni hali: A[ ] ={1,2,4,5,6} 'dir. Zaten son elemana gelindiği için for döngüsünden de çıkılır ve dizi sıralanmış olur.


____________________________________________________

En kötü durum (Worst Case) analizi :


A [i] ' yi sıralarken maksimum karşılaştırma sayısı  (i-1)'dir. Dolayısı ile karşılaştırma sayısı toplam işlem zamanını vereceğinden,



Twc(n) £  å i = 2 to n  (i -1)
              £ å j = 1 to n-1   (j) 
              = n(n-1)/2
              = Q(n2)


Buradan T(n) = Q(n2) çıkar. 


______________________________________________________

En iyi durumda zaten sıralı geleceğinden en iyi durum analizi tahmin edilebileceği gibi  T(n) = Q (n) 'dir.



30 Haziran 2012 Cumartesi

Wamp Server'da CURL Aktifleştirme


PHP kodları yazmaya başladığınızda CURL kullanmanız gerekebilir .Php.ini dosyasında bulunan bazı uygulamaların destekleri kapalı olarak geliyor. Bunları açmak isterseniz aşağıdaki adımları uygulayabilirsiniz. 



  • C:\wamp\bin\php\php5.2.6 klasöründeki  php.ini dosyasını not defteri ile açın.
  • php.ini içinden (;extension=php_curl.dll satırını aratıp bulun ve başındaki  noktalı virgülü (;) kaldırın ve kaydedin.
  • Aynı işlemi  C:\wamp\bin\apache\apache2.2.8\bin  adresine gidip tekrardan yapın.
  • WampServer' ı yeniden başlatın.

17 Haziran 2012 Pazar

Br Dönem Sonu - Yeni Bir Dönem Başı

Okullar tatile girdi. Artık kendimle daha fazla başbaşayım ve yapmak istediklerim için yeterli zamana ihtiyacım var . Her ne kadar bütün kurduğum hayalleri  yapamayacak olsam da aralarından birkaçını yapmak için gerekli zamanım var. Bunun farkındayım. İnsan hayal kurarken sınır olmadığı için yapması mümkün olmayan ya da zamanlama hatası yaptığı hayalleri bile kurabiliyor. Her neyse, yapmak istediklerimin başında php  ve veritabanı konusunu bitirmek geliyor. Kanımca bu yaz tatilinde sadece bu konuyu bitirebilirim. Yavaş yavaş da başladım zaten php çalışmaya. 

Öncelikli  hedefim kendime ait olan blogları kendi yaptığım web siteme geçirmek. Ardından  youtube benzeri bir site kurmak. Aslına bakılırsa bunu bu yaz halletmeyi düşünüyorum. İsmi bile hazır ama burada yazmak biraz abes kaçar diye düşünüyorum. Php de ilerlmeye başladım sayılır. Ama daha zamana ihtiyacım var. 

Artık ne diyorum biliyor musun sevgili blog?  Şu zaman kadar ertelediğin bütün hayalleri bir kenara bırak. Bırak ne olurlarsa olsunlar. Zaman özellikle günümüzde eskisinden çok daha hızlı ilerliyor. Eski hayallere bakacak kadar ya da eski hayallerini düşünecek kadar zamanı olmamalı insanın. İnan bana kişiyi daha  da köreltiyor. En iyisi yeni hayaller kurup, bu yeni hayallere eskilerden küçük montajlar yapıp şimdiden devam etmeli. Ben böyle yapıyorum mesela. En azından artık.


7 Haziran 2012 Perşembe

Dönem Bitti

Öyle böyle, şunu yapcam, bu da olacak derken bir dönemi bitirdik resmen. Artık sınav sonuçlarının açıklanmasını bekliyorum. Hala tatil moduna giremedim. Bir yandan da korkuyor insan hiç beklenmedik bir kaza olabilir diye. Neyse artık çok çok az kaldı bakacağız artık.

Bir yandan yavaş yavaş ergenlikten çıkmaya başlamış yaşlı bir ergen olarak yapmam gerekenleri, gençliğimin bu son yazında yapmalıyım diye düşünmeden duramıyorum.

Ne diyelim nasip kısmet!

20 Mayıs 2012 Pazar

Bir Dönemin Sonu

Artık bir dönemin daha sonuna yaklaşıyoruz. Bayağı bir yorulmuşum sanırım bunu şimdilerde daha iyi hissediyorum. Okulun bir an önce tatile girmesini temenni ediyorum. Dört gün sonra sınavlarım başlıyor ve beş gün içinde bitiyor. Bir yandan iyi diyorum ama bir yandan da kötü. Sonuçlar biraz sıkıntılı olabilir. İnanır mısın dostum bu ayın sonunu iple çekiyorum desem yanlış söylemiş olmam.  Artık bir bıkkınlık söz konusu oldu bende. Az da olsa tatile ihtiyacım var ya da başka bir değişle boş işlerle uğraşmaya ihtiyacım var. Büyümüş  olmanın getirdiği sorumluluklar da sanki üzerime yavaş yavaş binmeye başladı. İnsanın fazla tatil yapası da gelmiyor. Birkaç gün kafa dağıtıp - boş işlerle uğraşıp- sonra yine kaldığım yerden devam etmeliyim. Bu yaz yapmam gerekenler, yapmak istediklerim var. İnsanın yaşı biraz ilerlemeye başlayınca sınavlar çekilmez oluyor belli ki. Ama yapacak bir şey yok.

Biraz daha kasıp, dönemi kazasız belasız bitirmek lazım. Sonrasına da sonra bakacağız artık.