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