Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #define ROZMIAR 10
- int pom[ROZMIAR];
- int Dane[ROZMIAR];
- int sumadanych(int Dane[],short n)
- {
- int i,suma=0;
- for(i=0;i<n;i++) suma+=Dane[i];
- return suma;
- }
- void generujDane(int dane[], short n)
- {
- time_t t;
- srand((unsigned) time(&t));
- short i=1;
- for (i=0; i<n; i++)
- dane[i]= rand()%100-50;
- }
- void wysdane(int dane[], short n)
- {
- short i=1;
- for (i=0; i<n; i++)
- printf ("%d ", dane[i]);
- }
- void zamien(int dane[], short i, short j)
- {
- int tmp=dane[i];
- dane[i]=dane[j];
- dane[j]=tmp;
- }
- short znajdzimin(int dane[], short p, short k)
- {
- short i, imin=p;
- int min=dane[imin];
- for (i=p+1; i<=k; i++)
- {
- if(min>dane[i] )
- {
- min=dane[i];
- imin=i;
- }
- }
- return imin;
- }
- void sortbabelkowe(int dane[], short n)
- {
- short i,j;
- for (i=0;i<n-1;i++)
- for(j=i+1; j<n; j++)
- if(dane[i]>dane[j]) zamien(dane, i, j);
- }
- void sortwyb(int dane[], short n)
- {
- short i, imin;
- for(i=0; i<n-1; i++)
- {
- imin=znajdzimin(dane, i, n-1);
- zamien(dane, i, imin);
- }
- }
- int znajdzPierwszyElementBisekcja(int element, int dane[], short poczatek, short koniec)
- {
- short srodek;
- while (poczatek<koniec)
- {
- srodek=(poczatek + koniec)/2;
- if (element<=dane[srodek])
- koniec=srodek;
- else
- poczatek=srodek+1;
- }
- if (element == dane[poczatek])
- return poczatek;
- else return -1;
- }
- void sortowanieprzezwstawianie(int dane[], short n)
- {
- int j,k,i ;
- // int pom[ROZMIAR];
- k=0;
- for(i;i<ROZMIAR;i++)
- {
- j=k;
- while(j>0 && dane[i]<pom[j-1])
- {
- zamien(pom,j,j-1);
- j--;
- }
- pom[j]=dane[i];
- k++;
- }
- for(i=0;i<n;i++) dane[i]=pom[i];
- }
- void flagapolska(int dane[],int prog,short n)
- {
- //XD
- //beka jak rzeka
- int p=0, k=n-1;
- while(p<k)
- {
- while(p<n-1 && dane[p]<prog) p++;
- while(k>=0 && dane[k]>= prog) k--;
- if(p<k) zamien(dane,p,k);
- p++;
- k--;
- }
- }
- int bisekcjafp(int element, int dane[], short poczatek, short koniec)
- {
- short srodek;
- while (poczatek<koniec)
- {
- srodek=(poczatek + koniec)/2;
- if (element<=dane[srodek])
- koniec=srodek;
- else
- poczatek=srodek+1;
- }
- return poczatek;
- }
- int compare_int(const int *pa,const int *pb)
- {
- int *ia = (int *) pa;
- int *ib = (int *) pb;
- int a = *ia;
- int b = *ib;
- if(a<b) return 1;
- if(a>b) return -1;
- return 0;
- }
- int main()
- {
- printf ("sortowanie \n");
- generujDane(Dane, ROZMIAR);
- wysdane(Dane, ROZMIAR);
- // sortbabelkowe(Dane, ROZMIAR);
- //sortwyb(Dane, ROZMIAR);
- // sortowanieprzezwstawianie(Dane,ROZMIAR);
- // flagapolska(Dane,0,ROZMIAR);
- void qsort(void Dane,ROZMIAR,sizeof(int),compare_int)
- // printf ("\n\n\n\n");
- // printf("\n\n\n\n%d\n\n\n\n", bisekcjafp(0,Dane,0,ROZMIAR-1));
- // printf( "suma danych wejsciowych: %d\n",sumadanych(Dane,ROZMIAR));
- // printf( "suma danych posortowanych: %d\n",sumadanych(pom,ROZMIAR));
- wysdane(Dane, ROZMIAR);
- int i = znajdzPierwszyElementBisekcja(4, Dane,0, ROZMIAR-1);
- printf ("\n--->%d\n", i);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement