Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- void SORT_ZLICZ(int *tab,int n);
- void SORT_SCAL(int *tab, int right, int left, int mid);
- void main()
- {
- int i, *tab, n=0;
- printf("podaj rozmiar tablicy: ");
- fflush(stdin);
- scanf("%d",&n);
- tab=(int*)malloc(n*sizeof(int));
- printf("podaj elementy tablicy: ");
- for(i=0;i<n;i++)
- {
- fflush(stdin);
- scanf("%d",&tab[i]);
- }
- printf("\ntablica przed posortowaniem: ");
- for(i=0;i<n;i++)
- {
- printf("%d ",tab[i]);
- }
- SORT_ZLICZ(tab,n);
- printf("\ntablica po posortowaniu: ");
- for(i=0;i<n;i++)
- {
- printf("%d ",tab[i]);
- }
- system("pause");
- }
- void SORT_ZLICZ(int *tab,int n)
- {
- int k=0;
- int i=0;
- int max=tab[0];
- int *b;
- int *c;
- b=(int*)malloc(n*sizeof(int));
- for(i=1;i<n;i++)
- {
- if(tab[i]>max)
- max=tab[i];
- }
- printf("\nmax wynosi: %d", max);
- k=max;
- c=(int*)malloc((k+1)*sizeof(int));
- for(i=0;i<=k;i++)
- {
- c[i]=0;
- }
- for(i=0;i<n;i++)
- {
- c[tab[i]]=c[tab[i]]+1;
- }
- for(i=1;i<=k;i++)
- {
- c[i]=c[i]+c[i-1];
- }
- for(i=0;i<n;i++)
- {
- b[c[tab[i]]-1]=tab[i];
- c[tab[i]]=c[tab[i]]-1;
- }
- for(i=0;i<n;i++)
- {
- tab[i]=b[i];
- }
- free(b);
- free(c);
- }
- void SORT_SCAL(int *tab, int left, int right, int mid)
- {
- int i=left;
- int j=mid=1;
- int k=left;
- while((i<=mid) &&
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement