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 tablica[],int n,int x,int *ilosc);
- void sortuj(int tablica[],int n);
- int szukanie_binarne(int tab[],int n,int x);
- int main()
- {
- int *szukane_indeksy=NULL,i=0,*tablica=NULL,dlugosc=0,szukany_element,ilosc_znalezionych_indeksow=0;
- printf("Podaj ilosc elementow tablicy: ");
- scanf("%d",&dlugosc);
- tablica=(int*)realloc(tablica,dlugosc*sizeof(int));
- for(i=0;i<dlugosc;i++)
- scanf("%d",tablica+i);
- printf("Tablica: ");
- for(i=0;i<dlugosc;i++)
- printf("%d ",tablica[i]);
- printf("\nPodaj szukana wartosc: ");
- scanf("%d",&szukany_element);
- printf("Szukanie liniowe 1: %d\n",szukanie_liniowe_1(tablica,dlugosc,szukany_element));
- szukane_indeksy=szukanie_liniowe_2(tablica,dlugosc,szukany_element,&ilosc_znalezionych_indeksow);
- printf("indeksy ze znaleziona wartoscia: ");
- for(i=0;i<ilosc_znalezionych_indeksow;i++)
- printf("%d ",szukane_indeksy[i]);
- sortuj(tablica,dlugosc);
- printf("\nPosortowana tablica: ");
- for(i=0;i<dlugosc;i++)
- printf("%d ",tablica[i]);
- printf("\nSzukanie binarne, indeks: %d \n",szukaniebinarne(tablica,dlugosc,szukany_element));
- }
- int szukanie_liniowe_1(int tab[],int n,int x)
- {
- int i=0;
- for(i=0;i<n;i++)
- {
- if(tab[i]==x)
- return i;
- }
- return -1;
- }
- int *szukanie_liniowe_2(int tablica[],int n,int x,int *ilosc)
- {
- int i=0,*tab=NULL,ile=0;
- for(i=0;i<n;i++)
- {
- if(tablica[i]==x)
- {
- tab=(int*)realloc(tab,(ile+1)*sizeof(int));
- tab[ile]=i;
- ile++;
- }
- }
- *ilosc=ile;
- return tab;
- }
- void sortuj(int tablica[],int n)
- {
- int i=0,j=0,tmp=0;
- for(i=0;i<n-1;i++)
- for(j=0;j<n-1;j++)
- if(tablica[j]>tablica[j+1])
- {
- tmp=tablica[j];
- tablica[j]=tablica[j+1];
- tablica[j+1]=tmp;
- }
- }
- int szukaniebinarne(int *tab,int n,int x)
- {
- int left=0,mid,right=n;
- for(;;)
- {
- if(left>right)
- return -1;
- else
- {
- mid=(left+right)/2;
- if(*(tab+mid)==x)
- return mid;
- else
- {
- if(*(tab+mid)<x)
- left=mid+1;
- else
- right=mid-1;
- }
- }
- }
- }
- /*
- char *slowa(char *lan,int *ilosc,int *dlugosc);
- int main()
- {
- char tablica[50],*tab=NULL;
- int i=0,ilosc_slow=0,dlugosc=0;
- fgets(tablica,50,stdin);
- tab=slowa(tablica,&ilosc_slow,&dlugosc);
- printf("Ilosc slow: %d\n",ilosc_slow);
- for(i=0;i<dlugosc;i++)
- printf("%c",*(tab+i));
- }
- char *slowa(char *lan,int *ilosc,int *dlugosc)
- {
- char *tab=NULL;
- int i=0,dlugosc_lan=0,ile=0;
- while(*(lan+dlugosc_lan)!='\0')
- dlugosc_lan++;
- tab=(char*)realloc(tab,dlugosc_lan-1);
- for(i=0;i<dlugosc_lan-1;i++)
- {
- if(*(lan+i)==' '||*(lan+i)=='\t'||*(lan+i)=='\n')
- {
- *(tab+i)='\n';
- ile++;
- }
- else
- *(tab+i)=*(lan+i);
- }
- *ilosc=ile+1;
- *dlugosc=dlugosc_lan-1;
- return tab;
- }
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement