"Информатика", Семёнов А.Л., Рудченко Т.А.
Сортировка помогает навести порядок в списке или наборе предметов, чтобы быстрее находить нужное и замечать сходства. Объекты можно выстроить в последовательность — например, числа от меньшего к большему или слова по алфавиту. Можно также объединить их в группы с общим признаком. Чтобы сортировка была понятной, выбирают признак сравнения, или ключ, и задают правило расположения.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Сортировка — преобразование расположения объектов по выбранному правилу, чтобы их было удобнее находить или рассматривать. Например, в длинном списке нужный предмет проще искать, если записи расположены не случайно. Правило сортировки помогает сделать список понятным и последовательным.
Упорядочение — размещение объектов в последовательности, где каждый следующий объект соответствует заданному правилу сравнения. Так можно расположить числа от меньшего к большему или названия по алфавиту. Порядок позволяет понять, какой объект стоит раньше, а какой позже.
Группировка — распределение объектов по группам с общим признаком; порядок объектов внутри группы может быть не задан. Например, книги можно разделить на группы по жанрам. Это удобно, когда сначала нужно найти не отдельную книгу, а нужную категорию.
Ключ сортировки — признак объекта, по которому сравнивают объекты и определяют их место в упорядоченной последовательности. Ключом могут быть фамилия, дата, число или название. Если ключ не выбран, непонятно, по какому признаку нужно устанавливать порядок.
Сортировка нужна, когда исходный список трудно просматривать: правило расположения помогает быстрее находить нужные объекты и видеть закономерности. В случайном наборе записи могут оказаться далеко друг от друга, даже если они похожи. После сортировки поиск становится проще, потому что расположение объектов подсказывает, где искать дальше.
Перед сортировкой выбирают ключ — например, фамилию, дату или число; один и тот же список можно упорядочить по разным ключам. Причина в том, что у каждого объекта есть несколько признаков. Список учеников можно расположить по фамилиям, а затем по датам рождения, и результаты будут разными, хотя сами ученики не изменились.
Правило сравнения задаёт направление упорядочения: значения можно расположить по возрастанию или убыванию, а слова — по алфавиту или в обратном порядке. Если направление не указать, один человек может начать с самого маленького числа, а другой — с самого большого. Поэтому правило должно заранее объяснять, что ставить первым и что следующим.
При одинаковых значениях ключа объекты оказываются равными по выбранному правилу; для дополнительного порядка можно выбрать второй ключ. Например, две книги могут иметь одинаковый жанр, но разные названия. Если после группировки важно расположить книги внутри каждой группы, можно сравнивать их уже по названию.
Упорядочение и группировка решают разные задачи: первое выстраивает объекты в последовательность, второе объединяет их по общему признаку. Последовательность отвечает на вопрос, что раньше, а что позже. Группа отвечает на вопрос, какие объекты похожи по выбранному признаку; при необходимости после группировки внутри каждой группы можно задать отдельный порядок.
| Что сравниваем | Цель | Правило | Результат |
|---|---|---|---|
| Упорядочение по возрастанию | Расположить значения от меньшего к большему | Сначала наименьшее значение | Последовательность чисел по росту |
| Упорядочение по убыванию | Расположить значения от большего к меньшему | Сначала наибольшее значение | Последовательность чисел по уменьшению |
| Упорядочение по алфавиту | Найти слово по его месту среди других | Сравнивать буквы по порядку алфавита | Слова от более ранней буквы к более поздней |
| Группировка по общему признаку | Собрать похожие объекты вместе | Объединять объекты с одинаковым признаком | Набор отдельных групп |
Сначала найди в таблице нужную задачу, затем посмотри, что сравнивают и какое правило применяют. Последний столбец показывает, каким должен получиться результат. Для группировки не ищи последовательность: проверь, что объекты оказались вместе именно по общему признаку.
Задача. Расположить числа 8, 3, 6, 1 по возрастанию. Нужно получить последовательность от наименьшего значения к наибольшему. Ключом здесь служит числовое значение каждого объекта.
Ответ: 1, 3, 6, 8. Проверка простая: при движении слева направо каждое следующее число не меньше предыдущего. Значит, направление сортировки выбрано верно.
Задача. Расположить названия городов в алфавитном порядке: Омск, Казань, Тула, Пермь. Ключом будет название города, а правило сравнения — порядок букв русского алфавита. Важно учитывать не только первую букву, если она у слов совпадает.
Ответ: Казань, Омск, Пермь, Тула. В этой задаче первые буквы различаются, поэтому сравнения следующих букв не понадобилось. Если бы первые буквы совпали, нужно было бы перейти к следующей букве каждого слова.
Задача. Разложить карточки с книгами по жанрам, а внутри каждого жанра расположить книги по названию. Здесь нужно выполнить два действия, потому что требуется и объединить книги, и задать порядок внутри каждой группы. Значит, сначала выбираем признак для групп, а затем отдельный ключ для сортировки в группе.
Ответ: сначала книги разделены по жанрам, затем в каждой группе названия расположены по алфавиту. Нельзя сравнивать все названия и забывать о жанрах: тогда не выполнится условие о группировке. Здесь используются два признака в разной последовательности.
Считать группировку и упорядочение одним и тем же — ошибка, потому что у этих действий разные результаты. Группы объединяют объекты по признаку, а упорядочение задаёт последовательность. Так путаются, когда оба действия называют общим словом «сортировка»; проверь себя вопросом: нужно найти похожие объекты или определить, что идёт раньше?
Не указывать, по какому признаку сравнивают объекты, — значит оставлять правило неполным. Это случается, когда кажется, что порядок и так очевиден, хотя у объекта несколько признаков. Проверь себя: сможешь ли объяснить, почему один объект стоит перед другим? Если нет, назови ключ и правило сравнения.
Путать возрастание и убывание особенно легко, если смотреть только на то, что числа «переставлены». При убывании первым ставят наибольшее значение, при возрастании — наименьшее. Чтобы проверить направление, сравни начало и конец списка: для возрастания начало должно быть меньше конца, а для убывания — больше.
При алфавитном упорядочении нельзя сравнивать слова только по первой букве. Если первые буквы совпали, нужно сравнить вторые, затем следующие, пока не обнаружится различие. Ошибка появляется из-за спешки; проверяй пары похожих слов посимвольно слева направо и не останавливайся на совпавшей букве.
Чтобы сортировать объекты, нужно уметь сравнивать числа и слова, читать списки и знать порядок букв русского алфавита. Эти навыки помогают точно выбрать место каждого объекта и проверить результат. Сортировка пригодится при поиске сведений в таблицах, каталогах и списках файлов: подходящий порядок помогает быстрее найти запись.
Позже сортировка станет частью алгоритмов обработки данных — последовательностей действий, которые выполняют для решения задачи. Она также используется при работе с базами данных, где хранят большие наборы сведений и выбирают нужные записи. Знание ключей и правил сравнения помогает понять, как компьютер упорядочивает информацию.
Чем сортировка отличается от группировки?
При упорядочении объекты выстраивают в определённую последовательность, например от меньшего числа к большему. При группировке их объединяют по общему признаку, а порядок внутри групп может не задаваться.
Что такое ключ сортировки?
Ключ сортировки — признак, по которому сравнивают объекты. Это могут быть, например, число, фамилия, дата или название.
Можно ли сортировать один список по-разному?
Да. Один и тот же список можно упорядочить по разным ключам или изменить направление порядка. Например, числа можно расположить по возрастанию или по убыванию.
Что делать, если у нескольких объектов одинаковый ключ?
По выбранному ключу такие объекты равны, поэтому их порядок может остаться неопределённым. Если нужен более точный порядок, выбирают дополнительный ключ.
Как расположить слова в алфавитном порядке?
Сравнивай слова по буквам слева направо, используя порядок букв русского алфавита. Если первые буквы совпадают, сравнивай следующие, пока не найдётся различие.
Сортировка: упорядочение и группировка