Advertisement
sildren12

Sortowania

Jun 11th, 2015
240
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.15 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void SORT_WYBIERZ(int *A,int n);
  4. void SORT_WSTAW(int *A,int n);
  5. void SORT_BUBBLE(int*A,int n);
  6. void SORT_ZLICZ(int *A,int n);
  7.  
  8.  
  9. void main()
  10. {
  11.         int i, tab[10] = {4,5,8,2,3,9,3,5,1,6}, dlugosc;
  12.         printf("Tablica przed sortowaniem: ");
  13.         for (i=0;i<10;i++) printf("%d ",tab[i]);
  14.  
  15.         dlugosc = sizeof (tab) / sizeof (int);
  16.         printf ("\nDlugosc tablicy: %d",dlugosc);
  17.  
  18.         /*SORT_WYBIERZ(tab,dlugosc);
  19.  
  20.         printf("\nTablica po sortowaniu przez wybieranie: ");
  21.         for (i=0;i<10;i++) printf ("%d ",tab[i]);
  22.  
  23.         SORT_WSTAW(tab,dlugosc);
  24.  
  25.         printf("\nTablica po sortowaniu przez wstawianie: ");
  26.         for (i=0;i<dlugosc;i++) printf ("%d ",tab[i]);
  27.  
  28.                 SORT_BUBBLE(tab,dlugosc);
  29.  
  30.         printf("\nTablica po sortowaniu przez wstawianie: ");
  31.         for (i=0;i<dlugosc;i++) printf ("%d ",tab[i]);*/
  32.  
  33.             SORT_ZLICZ(tab,dlugosc);
  34.  
  35.         printf("\nTablica po sortowaniu przez wstawianie: ");
  36.         for (i=0;i<dlugosc;i++) printf ("%d ",tab[i]);
  37.  
  38.         fflush(stdin);
  39.         getchar();
  40. }
  41.  
  42.  
  43.  
  44.  
  45.  
  46. void SORT_WYBIERZ(int *A,int n)
  47. {
  48.     int i,j,ind,min;
  49.     for(i=0;i<n-1;i++)
  50.     {
  51.         min=*(A+i);
  52.         ind=i;
  53.         for(j=i+1;j<n;j++)
  54.         {
  55.             if(*(A+j)<min)
  56.             {
  57.                 min=*(A+j);
  58.                 ind=j;
  59.             }
  60.         }
  61.         *(A+ind)=*(A+i);
  62.         *(A+i)=min;
  63.     }
  64. }
  65.        
  66. void SORT_WSTAW(int *A,int n)
  67. {
  68.     int i,j,key;
  69.     for(i=1;i<n;i++)
  70.     {
  71.         key=*(A+i);
  72.         j=i-1;
  73.     while((j>=0)&&(*(A+j)>key))
  74.     {
  75.         *(A+j+1)=*(A+j);
  76.         j=j-1;
  77.     }
  78.     *(A+j+1)=key;
  79.     }
  80. }
  81.  
  82. void SORT_BUBBLE(int *A,int n)
  83. {
  84.     int i,j,temp;
  85.     for(i=1;i<n;i++)
  86.     {
  87.         for(j=n-1;j>=i;j--)
  88.         {
  89.             if(*(A+j)<*(A+j-1))
  90.             {
  91.                 temp=*(A+j);
  92.                 *(A+j)=*(A+j-1);
  93.                 *(A+j-1)=temp;
  94.             }
  95.         }
  96.     }
  97. }
  98.  
  99. //NIE DZIALA
  100. void SORT_ZLICZ(int *A,int n)
  101. {
  102.     int i,k=0;
  103.     int B[10],*C=NULL;
  104.     for(i=0;i<n;i++)
  105.     {
  106.         if(A[i]>k)
  107.             k=A[i];
  108.     }
  109.     //B=(int*)malloc(n*sizeof(int));
  110.     C=(int*)malloc((k+1)*sizeof(int));
  111.     for(i=0;i<=k;i++)
  112.         C[i]=0;
  113.  
  114.     for(i=0;i<n;i++)
  115.         C[A[i]]=C[A[i]]+1;
  116.  
  117.     for(i=0;i<=k;i++)
  118.         C[i]=C[i]+C[i-1];
  119.    
  120.     for(i=n-1;i>=0;i--)
  121.     {
  122.         B[(C[(A[i])])-1] = A[i];
  123.         C[A[i]]=C[A[i]]-1;
  124.     }
  125.     for(i=0;i<n;i++)
  126.         A[i]=B[i];
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement