Сортировка массива — это процесс распределения всех элементов массива в определённом порядке. Очень часто это бывает полезным. Например, в вашем почтовом ящике электронные письма отображаются в зависимости от времени получения; новые письма считаются более релевантными, чем те, которые вы получили полчаса, час, два или день назад; когда вы переходите в свой список контактов, имена обычно находятся в алфавитном порядке, потому что так легче что-то найти. Все эти случаи включают в себя сортировку данных перед их фактическим выводом.
Оглавление:
Как работает сортировка?
Сортировка массивов методом выбора
Сортировка массивов методом выбора в C++
std::sort()
Тест
Как работает сортировка?
Сортировка данных может сделать поиск внутри массива более эффективным не только для людей, но и для компьютеров. Например, рассмотрим случай, когда нам нужно узнать, отображается ли определённое имя в списке имён. Чтобы это узнать, нужно проверить каждый элемент массива на соответствие с нашим значением. Поиск в массиве с множеством элементов может оказаться слишком неэффективным (затратным).
Однако, предположим, что наш массив с именами отсортирован в алфавитном порядке. Тогда наш поиск начинается с первой буквы нашего значения и заканчивается буквой, которая идёт следующей по алфавиту. В таком случае, если мы дошли до этой буквы и не нашли имя, то точно знаем, что оно не находится в остальной части массива, так как в алфавитном порядке нашу букву мы уже Не секрет, что есть алгоритмы поиска внутри отсортированных массивов и получше. Используя алгоритм, мы можем искать определённый элемент в отсортированном массиве, содержащем 1 000 000 элементов, используя всего лишь 20 сравнений! Недостатком, конечно же, является то, что сортировка массива с таким огромным количеством элементов — дело сравнительно затратное, и оно точно не выполняется ради одного поискового за
1. Просматривая строку массива от первого элемента, найти минимальный элемент и поместить его на место первого элемента, а первый — на место минимального.
2. Просматривая строку массива от второго элемента, найти минимальный элемент и поместить его на место второго элемента, а второй — на место минимального.
3. И так далее до предпоследнего элемента.
Решение:
//Pascal
const
n = 7;
var
a: array[1..n, 1..n] of integer;
i, j, min, ind: integer;
//Заполнение массива сл. числами и вывод на экран
begin
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := random(100);
write(a[i, j]:4);
end;
writeln;
end;
//Сортировка строки матрицы прямым выбором
for i := 1 to n - 1 do
begin
min := a[4, i];
ind := i;
for j := i + 1 to n do
if a[4, j] < min then
begin
min := a[4, j];
ind := j;
end;
a[4, ind] := a[4, i];
a[4, i] := min;
end;
writeln;
//вывод отсортированной строки
for j := 1 to n do
begin
write(a[4, j]:4);
end;
end.