Сортировка массивов на С++


Сортировка массива — это процесс распределения всех элементов массива в определённом порядке. Очень часто это бывает полезным. Например, в вашем почтовом ящике электронные письма отображаются в зависимости от времени получения; новые письма считаются более релевантными, чем те, которые вы получили полчаса, час, два или день назад; когда вы переходите в свой список контактов, имена обычно находятся в алфавитном порядке, потому что так легче что-то найти. Все эти случаи включают в себя сортировку данных перед их фактическим выводом.


Как работает сортировка?

Сортировка данных может сделать поиск внутри массива более эффективным не только для людей, но и для компьютеров. Например, рассмотрим случай, когда нам нужно узнать, отображается ли определённое имя в списке имён. Чтобы это узнать, нужно проверить каждый элемент массива на соответствие с нашим значением. Поиск в массиве с множеством элементов может оказаться слишком неэффективным (затратным).


Однако, предположим, что наш массив с именами отсортирован в алфавитном порядке. Тогда наш поиск начинается с первой буквы нашего значения и заканчивается буквой, которая идёт следующей по алфавиту. В таком случае, если мы дошли до этой буквы и не нашли имя, то точно знаем, что оно не находится в остальной части массива, так как в алфавитном порядке нашу букву мы уже прошли!

Существует множество способов сортировки массивов

Cортировка массива на С++ (1 способ)

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<int> a(n); // создаём массив из n нулей
    for(int i = 0; i < n; ++i){
        cin >> a[i];   // даём значение i-ому элементу
    }
    sort(a.begin(), a.end());  // сортировка по возрастанию
    // reverse(a.begin(), a.end()) - переворачивает массив
    // выводим массив
    for(auto i: a)
        cout << i << " ";
    
    return 0;
}

Cортировка массива на С++ (2 способ)

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<int> a(n); // создаём массив из n нулей
    for(int i = 0; i < n; ++i){
        cin >> a[i];   // даём значение i-ому элементу
    }
    for(int i = 0; i < a.size(); ++i){
        for(int j = 0; j < a.size(); ++j)
            if(a[i] < a[j])
                swap(a[i], a[j]);
    }
    for(auto i: a)
        cout << i << " ";
    return 0;
}


Чтобы написать комментарии вам нужно войти в систему или зарегистрируйтесь

Комментарии