Различные методы сортировки массивов в C++ с использованием sort(arr, arr+n)

В C++ функция sort()используется для сортировки элементов массива. Вот несколько способов сортировки массива с помощью sort(arr, arr+n):

  1. Сортировка целых чисел по возрастанию:

    #include <algorithm>
    int main() {
       int arr[] = {5, 2, 8, 1, 3};
       int n = sizeof(arr) / sizeof(arr[0]);
       std::sort(arr, arr + n);
       // Display the sorted array
       for (int i = 0; i < n; i++) {
           std::cout << arr[i] << " ";
       }
       return 0;
    }
  2. Сортировка строк в лексикографическом порядке:

    #include <algorithm>
    #include <iostream>
    #include <string>
    int main() {
       std::string arr[] = {"banana", "apple", "cherry", "date"};
       int n = sizeof(arr) / sizeof(arr[0]);
       std::sort(arr, arr + n);
       // Display the sorted array
       for (int i = 0; i < n; i++) {
           std::cout << arr[i] << " ";
       }
       return 0;
    }
  3. Сортировка пользовательских объектов с помощью компаратора:

    #include <algorithm>
    #include <iostream>
    #include <vector>
    // Custom object
    struct Person {
       std::string name;
       int age;
    };
    // Comparator function
    bool compareByName(const Person& a, const Person& b) {
       return a.name < b.name;
    }
    int main() {
       std::vector<Person> people = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 20}};
       int n = people.size();
       std::sort(people.begin(), people.end(), compareByName);
       // Display the sorted array
       for (const auto& person : people) {
           std::cout << person.name << " (" << person.age << ")" << std::endl;
       }
       return 0;
    }
  4. Сортировка по убыванию.
    По умолчанию sort()сортирует элементы в порядке возрастания. Для сортировки по убыванию можно использовать собственный компаратор.

    #include <algorithm>
    #include <functional>
    #include <iostream>
    int main() {
       int arr[] = {5, 2, 8, 1, 3};
       int n = sizeof(arr) / sizeof(arr[0]);
       std::sort(arr, arr + n, std::greater<int>());
       // Display the sorted array
       for (int i = 0; i < n; i++) {
           std::cout << arr[i] << " ";
       }
       return 0;
    }