Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- int szukanie_liniowe_1(int *tab,int n,int x);
- int* szukanie_liniowe_2(int *tab,int n,int x,int *ilosc);
- void sortowanie(int* tab,int n);
- int szukanie_binarne(int *tab,int n, int x);
- int main()
- {
- int *tab=NULL;
- int *tab_indeksow=NULL;
- int ilosc=0;
- int n=0;
- int x=0;
- int y=0;
- int z=0;
- int i=0;
- int j=0;
- printf("podaj rozmiar tablicy: \n");
- fflush(stdin);
- scanf("%d",&n);
- tab=(int*)realloc(tab,n*sizeof(int));
- printf("podaj liczby\n");
- for(i=0;i<n;i++)
- {
- fflush(stdin);
- scanf("%d",tab+i);
- }
- printf("podaj szukany element\n");
- scanf("%d",&x);
- y=szukanie_liniowe_1(tab,n,x);
- tab_indeksow=szukanie_liniowe_2(tab,n,x,&ilosc);
- printf("\nWynik funkcji szukanie liniowe 1: %d\n",y);
- printf("Wynik funkcji szukanie liniowe 2: %d\n",ilosc);
- printf("\ntablica indeksow\n");
- for(j=0;j<ilosc;j++)
- {
- printf("%d - %d\n",j+1,tab_indeksow[j]);
- }
- printf("\n");
- sortowanie(tab,n);
- printf("\n");
- for(i=0;i<n;i++)
- {
- printf("%d ",tab[i]);
- }
- z=szukanie_binarne(tab,n,x);
- printf("\nWynik szukania binarnego %d\n",z);
- return 0;
- }
- int szukanie_liniowe_1(int *tab,int n,int x)
- {
- int i=0;
- for(i;i<n;i++)
- {
- if(tab[i]==x)
- return i;
- }
- return -1;
- }
- int* szukanie_liniowe_2(int *tab,int n,int x,int *ilosc)
- {
- int i=0;
- int *tab_indeksow=NULL;
- for(i;i<n;i++)
- {
- if(tab[i]==x)
- {
- *ilosc+=1;
- tab_indeksow=(int*)realloc(tab_indeksow,(*ilosc)*sizeof(int));
- tab_indeksow[*ilosc-1]=i;
- }
- }
- return tab_indeksow;
- }
- void sortowanie(int* tab,int n)
- {
- int j=0;
- int i=0;
- int tmp=0;
- for(j=0;j<n;j++)
- {
- for(i=0;i<n;i++)
- {
- if(tab[i]>tab[i+1])
- {tmp=tab[i+1];
- tab[i+1]=tab[i];
- tab[i]=tmp;
- }
- }
- }
- }
- int szukanie_binarne(int *tab,int n, int x)
- {
- int left=0;
- int right=n;
- int mid=0;
- while(left<=right)
- {
- mid=((left+right)/2);
- if(tab[mid]==x)
- return mid;
- else
- {if(tab[mid]<x)
- left=mid+1;
- else right=mid-1;
- }
- }
- return -1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement