1~

Minter Coder's Blog

Veri Yapıları & Algoritmalar Searching Algorithms - Linear Search(Doğrusal Arama)

2022-05-26

Öncelikle arama nedir ? Tanımına bakalım arkadaşlar.

Arama, bilgi kümesi içerisinde belirli bir anahtar sözcüğe dayanılarak onunla ilgili diğer bilgilere erişme ve bulma işlemidir.

Eğer ki arama işlemimiz bellek üzerinde tutulan veriler üzerinde yapılıyorsa dahili ; disk,DVD gibi saklama birimleri üzerinde yapılıyorsa harici arama olarak adlandırılır.Biz 2 searching algoritması göreceğiz.

1)Linear Search(Doğrusal Arama)
2)Binary Search(Ikili Arama)

Linear Search:

En basit arama algoritmasıdır diyebiliriz.Örneğin elimizde unordered(sıralanmamış) bir liste yada dizi var ise biz tek tek dizinin içerisindeki elemanları for dönügüsü ile gezeriz ve eğer ki eleman bulunursa onun index değerini geri döndeririz yok eğer ki eleman bulunmaz ise -1 değerini dönüş değeri olarak veririz.En kötü zaman karmaşıklığı O(N) En iyi durum karmaşıklığı ise O(1)'dir.C dilinde kodlamamıza bakalım ;

 

#include<stdio.h>
#include<stdlib.h>
#include<time.h>

int linearSearch(int dizi[],int N,int aranan){
    for(int i = 0;i<N;i++){
        if(dizi[i]==aranan){
            return i;
        }
    }
    return -1;
}

int main(){
    int n,aranan;
    srand(time(NULL));
    printf("Kac elemanli dizi : ");    
    scanf("%d",&n);
    int dizi[n];
    printf("Dizimiz:\n");
    // 1 ile 10 arasında değer atıyoruz dizimize rastgele
    for(int i = 0;i<n;i++){
        dizi[i]=rand()%10;
        printf("%d\t",dizi[i]);
    }
    printf("\nAranilan değeri giriniz : ");
    scanf("%d",&aranan);
    int bulunduMu = linearSearch(dizi,n,aranan);
    bulunduMu != -1 ? printf("%d indexte eleman bulundu",bulunduMu) : printf("Eleman bulunmadı!!");
    
    return 0;
}