Advertisement
bartek27210

scalniaine

Jun 22nd, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.32 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void SORT_ZLICZ(int *tab,int n);
  5. void SORT_SCAL(int *tab, int right, int left, int mid);
  6.  
  7. void main()
  8. {
  9.         int i, *tab, n=0;
  10.         printf("podaj rozmiar tablicy: ");
  11.         fflush(stdin);
  12.         scanf("%d",&n);
  13.         tab=(int*)malloc(n*sizeof(int));
  14.         printf("podaj elementy tablicy: ");
  15.         for(i=0;i<n;i++)
  16.         {
  17.             fflush(stdin);
  18.             scanf("%d",&tab[i]);
  19.         }
  20.         printf("\ntablica przed posortowaniem: ");
  21.             for(i=0;i<n;i++)
  22.             {
  23.                 printf("%d ",tab[i]);
  24.             }
  25.         SORT_ZLICZ(tab,n);
  26.         printf("\ntablica po posortowaniu: ");
  27.             for(i=0;i<n;i++)
  28.             {
  29.                 printf("%d ",tab[i]);
  30.             }
  31.             system("pause");
  32.            
  33. }
  34.  
  35. void SORT_ZLICZ(int *tab,int n)
  36. {
  37.     int k=0;
  38.     int i=0;
  39.     int max=tab[0];
  40.     int *b;
  41.     int *c;
  42.     b=(int*)malloc(n*sizeof(int));
  43.  
  44.     for(i=1;i<n;i++)
  45.     {
  46.         if(tab[i]>max)
  47.         max=tab[i];
  48.     }
  49.     printf("\nmax wynosi: %d", max);
  50.  
  51.     k=max;
  52.     c=(int*)malloc((k+1)*sizeof(int));
  53.  
  54.     for(i=0;i<=k;i++)
  55.     {
  56.         c[i]=0;
  57.     }
  58.     for(i=0;i<n;i++)
  59.     {
  60.         c[tab[i]]=c[tab[i]]+1;
  61.     }
  62.     for(i=1;i<=k;i++)
  63.     {
  64.         c[i]=c[i]+c[i-1];
  65.     }
  66.     for(i=0;i<n;i++)
  67.     {
  68.         b[c[tab[i]]-1]=tab[i];
  69.         c[tab[i]]=c[tab[i]]-1;
  70.     }
  71.     for(i=0;i<n;i++)
  72.     {
  73.         tab[i]=b[i];
  74.     }
  75.     free(b);
  76.     free(c);
  77. }
  78.  
  79. void SORT_SCAL(int *tab, int left, int right, int mid)
  80. {
  81.     int i=left;
  82.     int j=mid=1;
  83.     int k=left;
  84.     while((i<=mid) &&
  85.  
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement