Advertisement
Dani_info

Sortari cpp

Mar 27th, 2018
131
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {  
  7.     char c;
  8.     cout << "Introdu metoda de sortare:";
  9.     cin >> c;
  10.     int n;
  11.     cout << "Introdu nr de elemente:"; cin >> n;
  12.     int v[100];
  13.     for (int i = 0; i < n; i++)
  14.         cin >> v[i];
  15.     switch (c)
  16.     {
  17.         case'b'://buble sort
  18.         {
  19.             int i = 0;
  20.             int ok = 0;
  21.             do
  22.             {
  23.                 ok = 0;
  24.                 for (int j = 0; j < n - i - 1; j++)
  25.                 {
  26.                     if (v[j] >= v[j + 1])
  27.                     {
  28.                         swap(v[j], v[j + 1]);
  29.                         ok = 1;
  30.                     }
  31.                 }
  32.                 ++i;
  33.             } while (ok);
  34.             break;
  35.         }
  36.         case'i'://insertion sort
  37.         {
  38.             for (int i = 0; i < n; i++)
  39.             {
  40.                 int x = v[i];
  41.                 int j = i - 1;
  42.                 while (j >= 0 && v[j] > x)
  43.                 {
  44.                     v[j + 1] = v[j];
  45.                     j--;
  46.                 }
  47.                 v[j + 1] = x;
  48.             }
  49.             break;
  50.         }
  51.  
  52.         case 's'://selection sort
  53.         {
  54.             for (int i = 0; i < n - 1; i++)
  55.             {
  56.                 for (int j = i + 1; j < n; j++)
  57.                 {
  58.                     if (v[j] <= v[i])
  59.                     {
  60.                         swap (v[i], v[j]);
  61.                     }
  62.                 }
  63.                
  64.             }
  65.             break;
  66.         }
  67.         case'n':
  68.         {      
  69.             int b[100], c[100];
  70.             for (int i = 0; i < n; i++)
  71.             {
  72.                 b[i] = 0;
  73.             }
  74.             for (int i = 0; i < n-1; i++)
  75.             {
  76.                 int cnt = 0;
  77.                 for (int j = i + 1; j < n; j++)
  78.                 {
  79.                     if (v[i] > v[j])
  80.                         b[i]++;
  81.                     else
  82.                         b[j]++;
  83.                 }
  84.                
  85.             }
  86.             for (int i = 0; i < n; ++i)
  87.             {
  88.                 c[b[i]] = v[i];
  89.             }
  90.             for (int i = 0; i < n; ++i)
  91.                 cout << c[i]<<" ";
  92.             cout << endl;
  93.             break;
  94.         }
  95.  
  96.     }
  97.  
  98.     for (int i = 0; i < n; i++)
  99.         cout << v[i] << " ";
  100.  
  101.     system("pause");
  102.     return 0;
  103. }
Advertisement
RAW Paste Data Copied
Advertisement