26 Nisan 2015 Pazar

SIRALAMA ALGORİTMALARI

              KABARCIK SIRALAMA (BUBBLE SORT) ALGORİTMASI

  1. Dizinin elemanları üzerinden ilk elemandan başlayarak ve her geçişte sadece yan yana bulunan iki eleman arasında sıralama yapılır
  2. Dizinin başından sonuna kadar tüm elemanlar bir kez işleme tabi tutulduğunda dizinin son elemanı (küçükten büyüğe sıralandığında) en büyük eleman haline gelecektir.
  3. Bir sonraki tarama ise bu en sağdaki eleman dışarıda bırakılarak gerçekleştirilmektedir. Bu dışarıda bırakma işlemi de dış döngüdeki sayaç değişkeninin değerinin her işletimde bir azaltılmasıyla sağlanmaktadır. Sayaç değişkeninin değeri 1 değerine ulaştığında ise dizinin solunda kalan son iki eleman da sıralanmakta ve sıralama işlemi tamamlanmaktadır.                  
  4. (n-1) iterasyon ve her iterasyonda (n-1) karşılaştırma.
  5. Toplam karşılaştırma sayısı : (n-1)*(n-1) = n2-2n+1 = O(n2)                                                                                                                                                                   
örnek kod 

#include<stdio.h>
#include<conio.h>
main()
{
      int eleman ;
      int gecici;
      int *dizi;
      printf("siralanacak dizi kac elemanli olacak ?");
      scanf("%d",&eleman);
      printf("siralanacak diziyi girin\n");
      for(int i=0;i<eleman;i++)
      {
              scanf("%d",&dizi[i]);
              
              }
      for(int i=0;i<eleman;i++){
              for(int j=i+1;j<eleman;j++)
              
              {
                      if(dizi[i]>dizi[j])
                      {
                      gecici=dizi[i];
                      dizi[i]=dizi[j];
                      dizi[j]=gecici;
                      }
                      
                      }
              
              }
      printf("siralandiktan sonraki hali \n");
      for(int i=0;i<eleman;i++)
      {
              printf("%d ",dizi[i]);
              
              }
      
      getch();
      }

                                                                                                                                                                                             

20 Nisan 2015 Pazartesi

Allegro


KURT KUZU ÇİFTÇİ LAHANA PROBLEMİNİN YAPAY ZEKA ÇÖZÜMÜNÜN GRAFİK TABANLI GERÇEKLENMESİ

Bir çiftçi, nehrin sol kıyısındaki kurt, kuzu ve lahanayı, kendisi ile birlikte en fazla bir varlığı (kurt,kuzu, lahana) teknesine alarak aynı anda karşı kıyıya geçirebilmektedir. Kurt kuzuyu, kuzu da
lahanayı çiftçinin yanında yiyememektedir aksi halde ise kurt kuzuyu, kuzu da lahanayı yer. Kurt
kuzuyu ve kuzu da lahanayı yemeden çiftçi teknesiyle kurt, kuzu ve lahanayı karşı kıyıya nasıl ulaştırabilir?
Durum uzayını ifade ederken tüm mümkün durumlar göz önünde bulundurulmalıdır. Durumlar arası geçişler, yasaklı durumlar ve durumlar arası geçiş sonunda meydana gelecek olay açıkça belirtilmeli ve grafik ekranda gösterilmelidir.
Buradaki yasaklı durumlar; kurt ile kuzunun ve kuzu ile lahananın baş başa kalması durumudur. 

                                                              Grafik Ekran