BorjanCrvenkov

pokazuvaci linearno i binarno prebaruvanje

Dec 27th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.59 KB | None | 0 0
  1. /*
  2. Да се напишат следните функции за пребарување во низа:
  3. • Линеарно пребарување
  4. • Бинарно пребарување
  5. Потоа да се напише главна програма во која ќе се пополнува низа со броевите
  6. од 1 до 1 000 000, а потоа се генерира случаен број во овој опсег чија што
  7. позиција треба да се пронајде со повикување на двете функции за
  8. пребарување
  9. */
  10.  
  11. #include <stdio.h>
  12. #include <stdlib.h>
  13.  
  14. int randomNumb(){
  15. return (rand() % 1000000 + 1);
  16. }
  17. /*int linearno(int *a,int n){
  18. int broj=randomNumb();
  19. printf("%d\n",broj);
  20. for(int i=0;i<n;i++){
  21. if(*(a+i)==broj){
  22. return i;
  23. }
  24. }
  25.  
  26. }*/
  27. int binarno(int *a,int n){
  28. int broj=randomNumb();
  29. printf("%d\n",broj);
  30. int start=0,end=n;
  31. while(start<=end){
  32. int middle=(start+end)/2;
  33. if(broj<*(a+middle)){
  34. end=middle;
  35. }
  36. else if (broj>*(a+middle)){
  37. start=middle;
  38. }
  39. else if(broj==*(a+middle)){
  40. return middle;
  41. }
  42. }
  43. }
  44. int main()
  45. {
  46. int from=0,to=1000001;
  47. int niza[1000000];
  48. int i;
  49. for( i=from;i<to;i++){
  50. niza[i]=i;
  51. }
  52. //printf("%d",linearno(&niza,to));
  53. printf("%d",binarno(&niza,to));
  54. return 0;
  55. }
Add Comment
Please, Sign In to add comment