Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- #include <time.h>
- void bubblesort(int tab[],int rozmiar)
- {
- int i,pom,porownania=0,zamiany=0;
- int j=rozmiar-1;
- for(;j>=1;j--)
- {
- i=1;
- for(;i<=j;i++)
- {
- porownania++;
- if(tab[i]>tab[i+1])
- {
- zamiany++;
- pom=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=pom;
- }
- }
- }
- printf("porownania=%d\nzamiany=%d",porownania,zamiany);
- }
- void bubblesortguardian(int tab[],int rozmiar)
- {
- int i,pom,porownania=0,zamiany=0;
- int j=rozmiar-1,p;
- for(;j>=1;j--)
- {
- i=1,p=1;
- for(;i<=j;i++)
- {porownania++;
- if(tab[i]>tab[i+1])
- {
- zamiany++;
- pom=tab[i];
- tab[i]=tab[i+1];
- tab[i+1]=pom;
- p=0;
- }
- }
- if(p==1)j=1;
- }
- printf("porownania=%d\nzamiany=%d",porownania,zamiany);
- }
- int main()
- {
- float czas1,czas2;
- FILE *pfile;
- int tab1[1000],tab2[10000],tab3[100000],pom;
- // wpisanie losowych wartosci do plikow i do tablic
- pfile = fopen ("tablica1.txt","w");
- int i=0;
- for(;i<1000;i++)
- {
- pom=rand()%1000;
- tab1[i]=pom;
- fprintf (pfile, "%d\n",pom);
- }
- fclose (pfile);
- pfile = fopen ("tablica2.txt","w");
- for(i=0;i<10000;i++)
- {
- pom=rand()%1000;
- tab2[i]=pom;
- fprintf (pfile, "%d\n",pom);
- }
- fclose (pfile);
- pfile = fopen ("tablica3.txt","w");
- for(i=0;i<100000;i++)
- {
- pom=rand()%1000;
- tab3[i]=pom;
- fprintf (pfile, "%d\n",pom);
- }
- fclose (pfile);
- puts("*****sortowanie babelkowe*****\ntablica1000elementowa:");
- clock_t start=clock();
- bubblesort(tab1,1000);
- clock_t end=clock();
- float x;
- x=end-start;
- printf("\nczas programu=%f ",x);
- puts("\ntablica10000elementowa:");
- start=clock();
- bubblesort(tab2,10000);
- end=clock();
- x=end-start;
- printf("\nczas programu=%f ",x);czas1=x;
- puts("\ntablica100000elementowa:");
- start=clock();
- bubblesort(tab3,100000);
- end=clock();
- x=end-start;
- printf("\nczas programu=%f ",x);czas2=x;
- printf("stosunek czasow= %f",czas2/czas1);
- //sortowanie ze straznikiem
- pfile = fopen ("tablica1.txt","r");
- for(i=0;i<1000;i++)
- {
- fscanf(pfile,"%d",&tab1[i]);
- }
- fclose (pfile);
- pfile = fopen ("tablica2.txt","r");
- for(i=0;i<10000;i++)
- {
- fscanf(pfile,"%d",&tab2[i]);
- }
- fclose (pfile);
- pfile = fopen ("tablica3.txt","r");
- for(i=0;i<100000;i++)
- {
- fscanf(pfile,"%d",&tab3[i]);
- }
- fclose (pfile);
- //
- //
- puts("\n*****sortowanie babelkowe ze straznikiem*****\ntablica1000elementowa:");
- start=clock();
- bubblesort(tab1,1000);
- end=clock();
- x=end-start;
- printf("\nczas programu=%f ",x);
- puts("\ntablica10000elementowa:");
- start=clock();
- bubblesort(tab2,10000);
- end=clock();
- x=end-start;
- printf("\nczas programu=%f ",x);czas1=x;
- puts("\ntablica100000elementowa:");
- start=clock();
- bubblesort(tab3,100000);
- end=clock();
- x=end-start;
- printf("\nczas programu=%f ",x);czas2=x;
- printf("stosunek czasow= %f",czas2/czas1);
- getchar();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement