08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

if (k < SIZE)<br />

printf("a[%d] = %d\n", k, a[k]);<br />

else<br />

printf("aranan deger dizide yok!\n");<br />

}<br />

return 0;<br />

searched_val isimli değişken, dizide aranacak değeri tutmak için tanımlanıyor. Bu<br />

değişkenin değeri standart scanf işleviyle klavyeden alınıyor. Daha sonra oluşturulan bir<br />

for döngüsüyle, dizinin her bir elemanının aranan değere eşitliği döngü gövdesinde yer<br />

alan bir if deyimiyle sınanıyor. Eğer dizinin herhangi bir elemanı aranan değere eşit ise<br />

break deyimi ile döngüden çıkılıyor. Döngü çıkışında eğer döngü değişkeni olan k, SIZE<br />

değerinden küçük ise aranan değer bulunmuş yani döngüden break deyimi ile çıkılmıştır.<br />

Döngüden break deyimi ile çıkılmamışsa k değişkenin değeri SIZE değerine eşit olur,<br />

değil mi?<br />

Dizinin elemanları dizinin içinde sırasız yer alıyorsa, bir değerin dizide bulunmadığı<br />

sonucunu çıkarmak için dizinin tüm elemanlarına bakılmalıdır.<br />

Ancak dizi sıralı ise binary search ismi verilen bir algoritmanın kullanılması arama<br />

işleminin çok daha verimli yapılmasını sağlar:<br />

#include <br />

#include <br />

#include <br />

#define SIZE 100<br />

int main()<br />

{<br />

int a[SIZE];<br />

int k, mid, searched_val;<br />

int val = 1;<br />

int low = 0;<br />

int high = 1;<br />

srand(time(0));<br />

for (k = 0; k < SIZE; ++k) {<br />

a[k] = val;<br />

val += rand() % 10;<br />

printf("%d ", a[k]);<br />

}<br />

printf("\naranacak degeri girin : ");<br />

scanf("%d", &searched_val);<br />

while (low searched_val)<br />

high = mid - 1;<br />

else<br />

low = mid + 1;<br />

}<br />

if (low > high)<br />

printf("%d degeri dizide bulunamadi!\n", searched_val);<br />

else<br />

printf("a[%d] = %d\n", mid, searched_val);<br />

}<br />

return 0;<br />

207

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!