Advertisement
Serafim_

Cложная сортировка через while

Oct 20th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.26 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. using std::cout;
  4. using std::cin;
  5. using std::endl;
  6. int main()
  7.  
  8. {
  9.     int n;
  10.     cout << "Введите количество элементов массива : ";
  11.     cin >> n;
  12.     int a[n];
  13.     int i = 0;
  14.     while( i < n ) {
  15.         cout << "[" << i + 1 << "]" << ": ";
  16.         cin >> a[i];
  17.         i++;
  18.       }
  19.  
  20.  
  21.  
  22.     int m=a[0];
  23.     i=1;
  24.     while (i<n){
  25.         if (a[i]>m){
  26.             m=a[i];
  27.         }
  28.         i++;
  29.     }
  30.  
  31.  
  32.     int min=a[0];
  33.     i=1;
  34.     while (i<n){
  35.         if (a[i]<min){
  36.             min=a[i];
  37.         }
  38.         i++;
  39.     }
  40. int Z=(m-min)+1;
  41.  
  42.  
  43.  
  44.  
  45.     int b[Z];
  46.     for (int i=0;i<Z;i++) b[i]=0;
  47.  
  48.      i=0;
  49.     while (i<n){
  50.         int index=a[i++]-min;
  51.         b[index]++;
  52.     }
  53.  
  54.     int v[n];int q=0;
  55.  
  56.    i=0;
  57.    while (i<Z){
  58.        int k=0;
  59.        while (k++ < b[i]){
  60.             v[q++] = i+min;
  61.         }
  62.         i++;
  63.     }
  64.  
  65.  
  66. cout<<"Отсортированные элементы массива : ";
  67.     i=0;
  68.     while(i<n){
  69.         cout<<v[i++]<<"  ";
  70.     }
  71.  
  72. }
  73.  
  74.  
  75. //по убыванию
  76. // int v[n];int q=0;
  77.  
  78.     //for (int i=Z-1;i>=0;i--){
  79.         //for (int k=0;k<b[i];k++){
  80.            // v[q] = i+min;
  81.            // q=q+1;
  82.         }
  83.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement