Advertisement
yuku04

ASD-SORTARI

Jan 17th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.46 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. //BUBBLE SORT
  5. void swap(int &x, int &y)
  6. {
  7.     int temp = x;
  8.     x = y;
  9.     y = temp;
  10.  
  11. }
  12. void bbsort(int v[], int n)
  13. {
  14.     int i, j;
  15.     bool flag = true;
  16.  
  17.     for(i = 0; i < n-1; i++)
  18.     {
  19.         if(flag == false)
  20.             break;
  21.         flag = false;
  22.         for(j = 0; j < n-1-i; j++)
  23.             if(v[j] > v[j+1])
  24.             {
  25.                 swap(v[j], v[j+1]);
  26.                 flag = true;
  27.             }
  28.     }
  29. }
  30.  
  31. //INTERSCHIMBARE DIRECTA
  32. void interschimbareDirecta(int v[], int n)
  33. {
  34.     int i, j;
  35.     for(i = 0; i < n-1; i++)
  36.         for(j = i+1; j< n; j++)
  37.         {
  38.             if(v[i] > v[j])
  39.                 swap(v[i], v[j]);
  40.             for(int k = 0; k < n; k++)
  41.                 cout<<v[k]<<" ";
  42.             cout<<endl;
  43.         }
  44. }
  45.  
  46.  
  47.  
  48.  
  49. //SELECTION SORT
  50.  
  51. void selectSort(int v[], int n)
  52. {
  53.     int i, j, min_poz;
  54.     for(i = 0; i < n-1; i++)
  55.     {
  56.         min_poz = i;
  57.         for(j = i+1; j < n; j++)
  58.             if(v[j] < v[min_poz])
  59.                 min_poz = j;
  60.         swap(v[min_poz], v[i]);
  61.     }
  62. }
  63.  
  64. void insertionSort(int v[], int n)
  65. {
  66.     int i, j, x;
  67.     for(i = 1; i < n; i++)
  68.     {
  69.         x = v[i];
  70.         j = i-1;
  71.         while(j >= 0 && x < v[j])
  72.         {
  73.             v[j+1] = v[j];
  74.             j--;
  75.         }
  76.         v[j+1] = x;
  77.     }
  78. }
  79. void insertionSort1(int v[], int n)
  80. {
  81.     int i, j, aux;
  82.     for(i = 1; i < n; i++)
  83.     {
  84.         j = i;
  85.         while(j > 0 && v[j] < v[j-1])
  86.         {
  87.             aux = v[j];
  88.             v[j] = v[j-1];
  89.             v[j-1] = aux;
  90.             j--;
  91.         }
  92.     }
  93. }
  94. int cautare_binara(int v[], int l, int r, int x)
  95. {
  96.     if(l > r)
  97.         return -1;
  98.     int m = (l + r) / 2;
  99.     if(x == v[m])
  100.         return m;
  101.     if(v[m] > x)
  102.         return cautare_binara(v, l, m-1, x);
  103.     return cautare_binara(v, m+1, r, x);
  104. }
  105. int main()
  106. {
  107.     int n, i;
  108.     cout << "n = ";
  109.     cin >> n;
  110.     int v[n];
  111.     for(i = 0; i < n; i++)
  112.         cin >> v[i];
  113.     cout << "Afisare vector: \n";
  114.     for(i = 0; i < n; i++)
  115.         cout <<v[i]<<" ";
  116.     cout<<endl<<"*****************"<<endl;
  117.  
  118.  
  119.     interschimbareDirecta(v, n);
  120.     // bbsort(v, n);
  121.     //selectSort(v, n);
  122.     //insertionSort(v, n);
  123.     cout<<"\nSortare:\n";
  124.     for(i = 0; i < n; i++)
  125.         cout <<v[i]<<" ";
  126.     //int x = cautare_binara(v, 0, n-1, 9);
  127.     //cout<<"\n Elementul este pe pozitia "<<x;
  128.  
  129.     return 0;
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement