ARRAY ARAMA (LINEAR SEARCH)
Sik bir sekilde bir programci arraylere yerlestirilmis buyuk miktarda datalar ile calisiyor olabilir. Kilit degere es bir degerin icerdigi arrayin olup olmamasini belirtmek gerekli olabilir.Belli bir elementi aramaya searching denir.Bu bolumumuzde arama tekniklerini tartisacagiz.En cok kullanilan iki arama teknigi linear searching ve binary searching dir.
Linear Search teknigi, kucuk array ve duzensiz arraler icin ideal bir metoddur.Array duzenli ise hizli binary search teknigi kullanilabilir.
Binary search algoritmasi her karsilastirmadan sonra elementlerin yaridan cogunu eler. Bu yol ile zaman kazanmis olunur.
Algoritma array elementinin ortasina yerlesir ve aranan kilit degeri karsilastirir.Esit ise, arana deger bulunmus demektir ve array subscript geriye doner.Esit degilse, sorun yariya indirilmis olunur.Eger aranan kilit orta elementten kucuk ise, Arrayin ilk yarisi aranmis, yoksa arrayin ikinci yarisi arranmistir.Eger aranan kilit deger belirtilmis subarraye esit degilse, arama deger bulunana kadar devam edecektir.
Binary Serach Teknigi daha ileri ki konularda anlatilacaktir.
/*Linear Search*/
#include
#define SIZE 100
int LinearArama(int [], int, int);
main()
{
int a[SIZE], x, KilitArama, element;
for(x = 0; z <= SIZE -1; x++) /data
olusturur*/
a[x] = 2 * x;
printf("Tam Sayi Arama Kilit Gir:\n");
scanf("%d", &KilitArama);
element = LinearArama(a, KilitArama, SIZE);
if(element = -1)
printf("Deger %d elementinin icinde bulundu\n", element);
else
printf("Deger Bulunamadi.\n");
return(0);
}
int LinearArama(int array[], int kilit, int size)
{
int n;
for(n = 0; n <= SIZE - 1; n++)
if(array[n] = = kilit)
return(n);
return( -1);
}
|