Advertisement
niks32

Learn16List1

Sep 23rd, 2022
869
0
351 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.37 KB | None | 0 0
  1. // Написать функцию сортировки строки/массива по возрастанию
  2. //Я решил попробовать тип list, который по идее как раз очень хорошо подходит для этого.
  3.  
  4. #include <iostream>
  5. #include <list>
  6. #include <iterator>
  7.  
  8. using namespace std;
  9.  
  10. void sort(list <int>& mass)
  11. {
  12.     const int SIZE_RESULT_MASS = mass.size();
  13.  
  14.     if (SIZE_RESULT_MASS != 0)
  15.     {
  16.         //int tempMaxValueIndex;
  17.         list <int> :: iterator itMass = mass.begin();
  18.         list <int> :: iterator itMassForCompare = mass.begin();
  19.         list <int> :: iterator itMinValue = mass.begin();
  20.  
  21.         for (int i = 0; i < SIZE_RESULT_MASS; i++, itMass++)
  22.         {
  23.             itMassForCompare = mass.begin();
  24.             advance(itMassForCompare, i);
  25.             itMinValue = mass.begin();
  26.             advance(itMinValue, i);
  27.  
  28.             for (int j = i; j < SIZE_RESULT_MASS-1; j++ ) { //{ 3, 1, 1, 9, 5, 11 }
  29.                 itMassForCompare++;
  30.                 if (*itMassForCompare < *itMinValue)
  31.                 {
  32.                     itMinValue = itMassForCompare;
  33.                 }  
  34.             }
  35.             swap(*itMass, *itMinValue);
  36.         }
  37.     }
  38. }
  39.  
  40. int main()
  41. {
  42.     setlocale(LC_ALL, "Rus");
  43.  
  44.     list <int> mass = { 3, 1, 1, 9, 5, 11 };
  45.     list <int> :: iterator itMass = mass.begin();
  46.  
  47.     sort(mass);
  48.  
  49.     cout << "Функция вышла" << endl;
  50.     for (int i = 0; i < mass.size(); i++)
  51.     {
  52.         cout << i << " - " << *itMass << endl;
  53.         ++itMass;
  54.     }
  55. }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement