File: Stare vježbe/vjezbe05/31__binarno_trazenje.c

  1. /*
  2.   31__binarno_trazenje.c
  3.   -----
  4.   Program pokazuje kako se primjenjuje algoritam binarnog pretrazivanja za
  5.   trazenje nekog broja u zadanom sortiranom nizu prirodnih brojeva.
  6. */
  7.  
  8. #include <stdio.h>
  9.  
  10. int main()
  11. {
  12. int a[] = {5, 45, 81, 102, 130, 205, 210, 440, 600, 802};
  13. int broj, lijevi, desni, srednji;
  14.  
  15. printf("Unesite broj koji zelite traziti: ");
  16. scanf("%d", &broj);
  17.  
  18. lijevi = 0;
  19. desni = sizeof(a)/sizeof(int)-1;
  20. srednji = (lijevi+desni)/2;
  21.  
  22. printf("Lijevi: %d, desni: %d, srednji: %d\n", lijevi, desni, srednji);
  23. while(lijevi<desni && broj!=a[srednji])
  24. {
  25. if(broj<a[srednji])
  26. desni=srednji-1;
  27. else
  28. lijevi = srednji + 1;
  29. srednji = (lijevi+desni)/2;
  30. printf("Lijevi: %d, desni: %d, srednji: %d\n", lijevi, desni, srednji);
  31. }
  32. if(broj==a[srednji])
  33. printf("Broj %d je clan niza i nalazi se na mjestu %d.\n",
  34. broj, srednji);
  35. else
  36. printf("Broj %d nije clan niza\n", broj);
  37.  
  38. return 0;
  39. }
  40.  
  41.