11 Aralık 2018 Salı

Linear / Sequential VE Binary Search (Doğrusal ve İkili Arama algoritması)

Linear / Sequential Search (Doğrusal Arama)
Doğrusal arama algoritması , klasik bir arama metodudur.
Sıklıkla kullanılır.Algoritma N boyutlu 
bir dizide ,istenilen eleman dizide bulunana kadar arama yapar,
yani eğer istenilen eleman ilk elemansa 
sadece bir kıyaslama yeterli olacaktır,eğer ikinci elemansa iki kıyaslama gerekecektir, 
genel olarak istenilen eleman dizideki k ıncı eleman olduğunu düşünürsek k kıyaslama gerekecektir



---------------------------------------------
------------Kendi yaptığım kontrol Programi---------------
#include <stdio.h>
int main(void){
int i,n,c,j,g,a;
    printf("\nDizinin bgenisligini giriniz:");
    scanf("%d",&n);
    int a[n];
    for (i=0;i<n;i++){
    printf("Dizinin %d elemanini giriniz",i+1);
    scanf("%d",&a[i]); }
    printf("eleman giriniz");
    scanf("%d",&c);
    printf("Aradiginiz sayi %d",c);
    for(i=0;i<=n;i++){
   
    if(c==a[i])
    printf("\nEleman sirasi %d",i+1);
  
}
      


    
   
    }
-------------------------------------------------
HOCANIN PROGRAMI
#include <stdio.h>
int main(void){
int i,aranan,sonuc=0,n;
printf("Dizinin boyutu: ");
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
printf("dizinin %d elemani: ",i+1);
scanf("%d",&a[i]);
}
    printf("aranilan eleman giriniz");
    scanf("%d",&aranan);
    for(i=0;i<10;i++)
if(a[i]==aranan){
printf("aranilan eleman yeri %d dir",i+1);
sonuc=1;
break;}
   
  if(sonuc==0) printf("aranilan eleman yok");
  getch();
}
---------Binary Search (Mid Search)---------------
Sıralı bir dizide aranılan elemanın olup olmadığını bulur.
Diziyi ikiye bölerek diziyi sağına veya soluna doğru ilerlemeyi esas alır.
      

--------------------BİNARY SEARCH İLE KÜMEDE SAYI ARAMA------------------
#include <stdio.h>

int main(){
int ib,is,ic,i,aranan,n;
printf("Dizinin boyutu:");
scanf("%d",&n);
int a[n];
for(i=0;i<n;i++)
{
printf("Dizinin %d elemani :",i+1);
scanf("%d",&a[i]);}
printf("Aranilan eleman:");
scanf("%d",&aranan);
ib = 0; is=n-1; ic=(ib+is)/2;
while(ib<is) if(aranan==a[ic]) ib=is;
else if(aranan>a[ic]) {ib=ic+1;ic=(ib+is)/2;}
else {is=ic-1; ic=(ib+is)/2;}

if(aranan==a[ic]) printf("Aranilan eleman bulundu. Yeri %d dir",ic+1);
else printf("Aranan eleman bulunamadi");
}
------------------------------------------------


0 yorum:

Yorum Gönder