Advertisement
m4ly

Inseration sort Bubble sort Quicksort qsort

May 11th, 2014
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.43 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h> //  qsort() i reszty funk.
  3. #include <time.h>
  4.  
  5. void wstawianie(int *liczby, int size)
  6. {
  7.     int tmp, i ,j;
  8.  
  9.     for(i = 1; i < size; ++i)
  10.     {
  11.         tmp = liczby[i];
  12.         printf("liczby[%d] = %d\n", i, tmp);
  13.         for(j = i; j > 0 && liczby[j - 1] > tmp; j--)
  14.         {
  15.             printf("+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n");
  16.             liczby[j] = liczby[j - 1];
  17.             printf("|liczby[j] = liczby[j - 1] <=> liczby[%d] = liczby[%d - 1] <=> Indeks %d ma teraz liczbe: %d\n", j, j, j, liczby[j - 1]);
  18.             liczby[j - 1] = tmp;
  19.  
  20.             printf("|liczby[j - 1] = tmp <=> liczby[%d - 1] = %d\n", j, tmp);
  21.             printf("+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+\n");
  22.         }
  23.         printf("--------------------------------\n");
  24.  
  25.     }
  26. }
  27.  
  28. void babelki(int *liczby, int size)
  29. {
  30.     int i, j;
  31.     for(i = 0; i < size-1; ++i)
  32.     {
  33.         for(j = 0; j < size - i - 1; ++j)
  34.         {
  35.             if(liczby[j] > liczby[j + 1])
  36.             {
  37.                 int tmp = liczby[j];
  38.                 liczby[j] = liczby[j + 1];
  39.                 liczby[j + 1] = tmp;
  40.             }
  41.         }
  42.     }
  43. }
  44.  
  45. void generuj(int *liczby, int size)
  46. {
  47.     int i;
  48.     // Generujmey liczby
  49.     for(i = 0; i < size; i++)
  50.         liczby[i] = rand();
  51. }
  52.  
  53. int porownaj( const void *a, const void *b)
  54. {
  55.     return(*(int*)a - *(int*)b);
  56. }
  57.  
  58. void quicksort(int *liczby, int size)
  59. {
  60.     qsort(liczby, size, sizeof(int), porownaj);
  61. }
  62.  
  63. void drukuj(int *liczby, int size)
  64. {
  65.     int i;
  66.     for(i=0; i < size; ++i)
  67.         printf("%d ", liczby[i]);
  68.  
  69.     printf("\n");
  70.  
  71. }
  72. int main(int argc, char **argv)
  73. {
  74.     srand(time(NULL));
  75.     int size = 100;
  76.     int i = 0;
  77.     int *tablica = (int *)malloc(size * sizeof(int));
  78.  
  79.     generuj(tablica, size);
  80.     printf("Przed babelkiem:\n");
  81.     drukuj(tablica, size);
  82.     printf("Po babelku:\n");
  83.     babelki(tablica, size);
  84.     drukuj(tablica, size);
  85.  
  86.     generuj(tablica, size);
  87.     printf("Przed wstawianiem:\n");
  88.     drukuj(tablica, size);
  89.     printf("Po wstawianu:\n");
  90.     wstawianie(tablica, size);
  91.     drukuj(tablica, size);
  92.  
  93.     generuj(tablica, size);
  94.     printf("Przed quicksort:\n");
  95.     drukuj(tablica, size);
  96.     printf("Po qsort:\n");
  97.     quicksort(tablica, size);
  98.     drukuj(tablica, size);
  99.  
  100.     // zwalniamy pamiec
  101.     free(tablica);
  102.  
  103.     return 0;
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement