Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- //l - lewy index tablicy, p - prawy index tablicy
- int szukaj(int l, int p, long int szukana, int *tab)
- {
- if(l>p)
- return -1;
- int sr = (l+p)/2;
- if(szukana == tab[sr])
- return sr;
- if(szukana < tab[sr])
- return szukaj(l,sr-1,szukana,tab); //przeszukujemy lewą część tablicy
- else
- return szukaj(sr+1,p,szukana,tab); //przeszukujemy prawą część tablicy
- }
- int main()
- {
- int i;
- long int n,szukana;
- printf("Podaj ile liczb chcesz wylosowac do tablicy z zakresu <0,100>: ");
- scanf("%ld",&n); //podajemy ilość elementów do wczytania n < 1000000
- int *tab;
- tab = (int *)malloc(n * sizeof(int));
- srand(time(NULL));
- for(i=0;i<n;i++)
- {
- tab[i]= rand()%101;//wczytanie elementów tablicy
- printf("%d\n",tab[i]);
- }
- printf("Podaj liczbe do wyszukania: ");
- scanf("%ld",&szukana);
- int pozycja = szukaj(0,n-1,szukana,tab);
- if(pozycja==-1)
- printf("Liczba %ld nie wystepuje w zbiorze\n",szukana);
- else
- printf("Liczba %ld wystepuje w zbiorze w komorce o nr %d\n",szukana,pozycja);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement