Advertisement
Guest User

Untitled

a guest
Jan 18th, 2018
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.97 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int set[20];
  5.  
  6. void Insertie(int nrElem)
  7. {
  8.     int i, j;
  9.     int aux;
  10.  
  11.     for (i = 1; i < nrElem; i++)
  12.     {
  13.         aux = set[i];
  14.         j = i - 1;
  15.         while (j >= 0 && set[j] > aux)
  16.         {
  17.             set[j + 1] = set[j];
  18.             j = j - 1;
  19.         }
  20.         set[j + 1] = aux;
  21.     }
  22.  
  23.     printf("\nSortat prin insertie : ");
  24.     for (i = 0; i < nrElem; i++)
  25.     {
  26.          printf("%d ", set[i]);
  27.     }
  28.  
  29. }
  30. void InsertiePerformanta(int nrElem)
  31. {
  32.     int i, j;
  33.     int aux;
  34.     int s, d, m;
  35.  
  36.     for (i = 1; i < nrElem; i++)
  37.     {
  38.         aux = set[i];
  39.         s = 0; d = i-1;
  40.         do
  41.         {
  42.             m = (s + d) / 2;
  43.             if (aux < set[m])
  44.             {
  45.                 d = m -1;
  46.             }
  47.             else
  48.             {
  49.                 s = m + 1;
  50.             }
  51.         } while (s <= d);
  52.         for (j = i - 1; j >= s; j--)
  53.         {
  54.             set[j + 1] = set[j];
  55.         }
  56.         set[j + 1] = aux;
  57.     }
  58.  
  59.     printf("\nSortat prin insertie performanta : ");
  60.     for (i = 0; i < nrElem; i++)
  61.     {
  62.         printf("%d ", set[i]);
  63.     }
  64. }
  65. void Selectie(int nrElem)
  66. {
  67.     int aux, i, j;
  68.     int min;
  69.  
  70.     for (i = 0; i < nrElem - 1; i++)
  71.     {
  72.         min = i;
  73.         for (j = i + 1; j < nrElem; j++)
  74.         {
  75.             if (set[j] < set[min])
  76.             {
  77.                 min = j;
  78.             }
  79.         }
  80.         aux = set[i];
  81.         set[i] = set[min];
  82.         set[min] = aux;
  83.     }
  84.     printf("\nSortat prin selectie : ");
  85.     for (i = 0; i < nrElem; i++)
  86.     {
  87.         printf("%d ", set[i]);
  88.     }
  89. }
  90. void Bubblesort(int nrElem)
  91. {
  92.     int i, j;
  93.     int aux;
  94.    
  95.     for ( j = 1; j < nrElem; j++)
  96.     {
  97.         for (i = 0; i < nrElem-1; i++)
  98.         {
  99.             if (set[i + 1] < set[i])
  100.             {
  101.                 aux = set[i + 1];
  102.                 set[i + 1] = set[i];
  103.                 set[i] = aux;
  104.             }
  105.         }
  106.     }
  107.     printf("\nSortat prin bubblesort : ");
  108.     for (i = 0; i < nrElem; i++)
  109.     {
  110.         printf("%d ", set[i]);
  111.     }
  112. }
  113. void Shakersort(int nrElem)
  114. {
  115.     int st, dr, k, aux;
  116.     st = 0;
  117.     dr = nrElem - 1;
  118.     do
  119.     {
  120.         for (int i = dr; i > st; i--)
  121.         {
  122.             if (set[i - 1] > set[i])
  123.             {
  124.                 aux = set[i - 1];
  125.                 set[i - 1] = set[i];
  126.                 set[i] = aux;
  127.                 k = i;
  128.             }
  129.         }
  130.         st = k;
  131.         for (int i = st; i < dr; i++)
  132.         {
  133.             if (set[i] > set[i + 1])
  134.             {
  135.                 aux = set[i];
  136.                 set[i] = set[i + 1];
  137.                 set[i + 1] = aux;
  138.                 k = i;
  139.             }
  140.         }
  141.         dr = k;
  142.     } while (st<dr);
  143.  
  144.     printf("\nSortat prin shackersort : ");
  145.     for (int i = 0; i < nrElem; i++)
  146.     {
  147.         printf("%d ", set[i]);
  148.     }
  149. }
  150. void Quicksort_Recursiv(int st, int dr)
  151. {
  152.     int i, j, x;
  153.     int aux;
  154.  
  155.     i = st;
  156.     j = dr;
  157.     x = set[(st + dr) / 2];
  158.  
  159.     do
  160.     {  
  161.         while (set[i] < x)
  162.         {
  163.             i++;
  164.         }
  165.         while (set[j] > x)
  166.         {
  167.             j--;
  168.         }
  169.  
  170.         if (i <= j)
  171.         {
  172.             aux = set[i];
  173.             set[i] = set[j];
  174.             set[j] = aux;
  175.             i++;
  176.             j--;
  177.         }
  178.  
  179.  
  180.     } while (i <= j);
  181.  
  182.     if (st < j)
  183.     {
  184.         Quicksort(st, j);
  185.     }
  186.     if (dr > i)
  187.     {
  188.         Quicksort(i, dr);
  189.     }
  190.  
  191. }
  192.  
  193. int main()
  194. {
  195.     FILE *f;
  196.  
  197.     int i=0;
  198.  
  199.     if (fopen_s(&f, "nr.txt", "r"))
  200.     {
  201.         printf("\nEroare la deschiderea fisierului ");
  202.     }
  203.     else
  204.     {
  205.         while (feof(f)==NULL)
  206.         {
  207.             fscanf_s(f, "%d", &set[i++]);
  208.         }
  209.     }
  210.  
  211.     //Insertie( i);
  212.     //InsertiePerformanta(i);
  213.     //Selectie(i);
  214.     //Bubblesort(i);
  215.     //Shakersort(i);
  216.     //Quicksort_Recursiv(0, i - 1);
  217.     system("pause");
  218.     return 0;
  219. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement