Сортировка одномерного массива. Шаг алгоритма и проверка результата
Исследовать готовый простой алгоритм сортировки выбором: найти минимум оставшейся части, обменять элементы и перейти к следующей позиции. Выполнить одну итерацию вручную, дополнить короткий фрагмент и проверить весь результат запуском. Использовать повторяющиеся и отрицательные значения, проверить неубывание и сохранение исходных элементов. Сравнение эффективности разных сложных сортировок не является основной целью часа.
Конспект урока
Проследить один шаг готовой сортировки выбором по неубыванию: найти минимум оставшейся части, обменять с текущим элементом и перейти к следующему месту. Дополнить сравнение, сохранить и выполнить свою программу; проверить порядок и сохранение всех исходных значений, включая повторы.
Все элементы — условные целые числа, включая отрицательные, ноль и повторы. Результат по неубыванию: каждый следующий не меньше предыдущего; равные разрешены. Сохраняются все значения и их количества, длина не меняется. i — место очередного минимального элемента, m — индекс текущего кандидата, j — просматриваемый индекс; a[m] — значение кандидата. Внутренний обход не переставляет элементы, обмен выполняется после его завершения. При равных минимумах строгое < оставляет первый найденный в оставшейся части; устойчивость сортировки различимых объектов здесь не исследуется. [] и список из одного элемента уже упорядочены, цикл с i < len(a)-1 для них не выполняется. Основная практика использует готовый алгоритм выбора, без встроенной сортировки и установки пакетов. Цифровую часть выполняют лично в подготовленном Python 3.
Для основной цифровой практики нужна заранее подготовленная школьная среда из инструкции учителя. Прогноз и итог записывай на бумаге; при отсутствии техники цифровое действие проверяют на ближайшей компьютерной практике. Сохраняй первую попытку; исправления отмечай другим знаком.
Безопасное начало
Сухие руки, без напитков у техники. Провода и разъёмы не трогай, о неисправности сообщи учителю. Работай по правилам кабинета. Две полные минуты в середине урока — без экрана и заданий. Внешний ИИ, личные аккаунты и личные данные не требуются.
Что уже нужно знать
Из 016–018: целочисленный список Python, индексы с нуля, присваивание элементу, len, поиск минимального значения и работа со своими сохранёнными .py. Из 8 класса — цикл while, сравнения и последовательные присваивания. Новое — внутренний просмотр оставшейся части при каждом внешнем шаге, повтор выбора минимума и обмен через временную переменную; устройство готовых двух циклов разобрано в памятке. Слияние, быстрая сортировка и сравнение сложных методов не относятся к основной цели часа.
S0. Нужно упорядочить по неубыванию числа [2, 1, 2]. Можно ли убрать одну двойку ради более короткого ответа? Почему?
Устная проба без отметки.
Выбор минимума, обмен и два критерия
Сортировать по неубыванию — расположить числа так, чтобы каждое следующее было не меньше предыдущего. Повторы сохраняются. В сортировке выбором место i заполняют минимальным значением из ещё не обработанной части. Сначала m = i; j идёт от i+1 до последнего индекса. Если a[j] < a[m], сохранить индекс m = j. Равенство при строгом < кандидата не меняет. Пока работает внутренний поиск, элементы не переставляются. После него обменять a[i] и a[m]: temp = a[i]; a[i] = a[m]; a[m] = temp. Временная переменная хранит старое значение до его перезаписи. Затем увеличить i и повторить для следующего места. Если m == i, обмен с собой значения не меняет. После одного шага гарантировано правильное минимальное место, весь остаток ещё нужно проверить и обработать. Иногда весь список уже упорядочен после одного шага, но это не общая гарантия. В конце нужны два условия: неубывание всех соседних пар и сохранение каждого исходного значения с тем же количеством. Одной длины или красивого порядка недостаточно. Для [] и одного элемента внешний цикл i < len(a)-1 не выполняется; результат прежний.
| Часть | Назначение |
|---|---|
| m = i | Первый кандидат оставшейся части |
| a[j] < a[m] | Найден меньший кандидат |
| temp | Сохранить старое значение |
| Две проверки | Порядок и все прежние элементы |
m и j — индексы с нуля, a[m] и a[j] — значения. Внутренний цикл выбирает позицию; обмен выполняется только после его завершения.
Концептуальная иллюстрация. Точные данные определены условиями, таблицами и схемами; предметы на рисунке не являются входными данными.
Личная проба
C1. Один шаг сортировки выбором: из всей ещё не обработанной части найти минимум и обменять его с элементом на текущем месте i. Дано a = [4, 1, 4, -2], i = 0. Индексы с нуля; сравнение строгое <. Укажи индекс m минимума и весь список после одного обмена.
Одна минута лично, две на сравнение первого места и оставшейся части; в коротком варианте одна лично и одна сверка. Памятка разрешена.
Проследить минимум до обмена
Другой пример: [4, 2, 3], i = 0. Сначала m = 0; при j = 1 значение 2 меньше 4, поэтому m = 1; при j = 2 значение 3 не меньше 2. После внутреннего поиска обменять позиции 0 и 1: [2, 4, 3]. Первое место готово, но 4 > 3, нужны следующие шаги.
A1. a = [3, -1, 2, -1], i = 0. Сначала m = i. По очереди j = 1, 2, 3; если a[j] < a[m], записать m = j. При равенстве m не менять. Запиши m после каждого j. Затем обменяй a[i] и a[m] и выпиши весь список. Полностью ли он упорядочен? Покажи конкретную пару, если нет.
Заготовка для своей записи:
| j / a[j] | m после | a[m] после |
|---|---|---|
| 1 / -1 | ||
| 2 / 2 | ||
| 3 / -1 |
Сначала своя запись и основание, затем сверка.
Полная пауза
Две минуты без проекции, чтения, вычислений и обсуждения. Отведи взгляд и смени позу.
Порядок без сохранности не достаточен
Другой вход [6, 1]. Если перезаписать первую ячейку единицей, старое 6 потеряется. При ошибочном повторном чтении a[0] выйдет [1, 1]. Правильная временная копия temp = 6 позволяет получить [1, 6]. Ошибочный список по неубыванию, но количество единиц изменилось и шестёрка исчезла.
A2. Python 3 выполняет ошибочный обмен ниже. Запиши фактический список после двух присваиваний и объясни, какое исходное значение потерялось. Запиши правильный обмен через temp в три присваивания и его результат. Почему одной проверки неубывания недостаточно?
a = [5, 2]
i = 0
m = 1
a[i] = a[m]
a[m] = a[i]
print(a)
Две минуты лично, две на потерянное значение и temp; в коротком варианте две лично и одна сверка.
Концептуальная иллюстрация. Точные данные определены условиями, таблицами и схемами; предметы на рисунке не являются входными данными.
Свой полный запуск и другой вход
В sort-starter.py даны оба цикла и обмен через temp. Единственный TODO — сравнение False, которое пока запрещает выбирать меньший элемент. Дополни сравнение значений a[j] и a[m], спрогнозируй весь результат, сохрани и запусти свой .py. Во второй копии меняются только данные. Для каждого вывода отдельно проверь соседние пары и количества всех значений.
| Свидетельство | Что записать |
|---|---|
| До запуска | Полный прогноз списка |
| Свой .py | Имя, папка, сохранённое сравнение |
| После запуска | Фактически напечатанный список |
| Две проверки | Неубывание и количества значений |
B1. Лично в заранее готовом Python 3 открой sort-starter.py. Алгоритм выбора и обмен через temp уже даны. Единственная строка TODO пока использует if False: и не выбирает меньший элемент. Замени только False сравнением a[j] < a[m], сохрани двоеточие, отступы и остальные строки.
При a = [4, -1, 4, 2, 0] до запуска запиши полный прогноз результата. Сохрани свой sort_A.py/sort_B.py в личную папку, проверь путь и запусти именно этот файл. Выпиши фактический список. Проверь отдельно: неубывание соседних значений; все исходные числа с теми же количествами (две четвёрки должны сохраниться).
Сохрани отдельную копию experiment_A.py/experiment_B.py. Измени только исходный список на [3, 3, -2, 3, -2], снова запиши прогноз, сохрани и запусти копию. Сверь оба критерия для этого входа. У каждого два своих файла, два реальных запуска и журнал с именами/путями, прогнозами, наблюдениями и двумя проверками.
Заготовка для своей записи:
| Вход | Прогноз списка | Фактический список |
|---|---|---|
| [4, -1, 4, 2, 0] | ||
| [3, 3, -2, 3, -2] |
Двенадцать минут: 1 инструкция + 5 первый ученик + 5 второй + 1 личная сверка; на 30 ПК параллельно. У каждого два своих сохранённых файла, два запуска и два проверенных результата.
Проверка вымышленного ответа ИИ
AI1. Вымышленный ИИ пишет: «Сортировка удаляет повторяющиеся числа. Одного выбора минимума и обмена с первым элементом всегда достаточно, чтобы упорядочить весь список». Опровергни обе фразы. Для первой используй [2, 2, -1], для второй [3, 1, 2].
Это заранее составленный учебный пример. Самостоятельно проверь конкретный шаг; обращение к сервису не требуется.
Помощь и резерв
- Сравнивает индексы. Сравнивать нужно a[j] и a[m].
- Путает m со значением. m выбирает ячейку; минимум хранится в a[m].
- Теряет значение при обмене. Сохрани старое a[i] в temp до перезаписи.
- Считает один шаг полной сортировкой. Проверь весь остаток, а не только первое место.
- Удаляет повторы. Сосчитай каждое исходное значение до и после.
D1. Резерв на бумаге. В готовом алгоритме i = 0 и внешний цикл while i < len(a)-1. Что произойдёт для [] и для [7]? Будут ли обращения к a[i] внутри тела и изменятся ли списки?
D1 — необязательный резерв на 3–4 минуты после основных попыток. При нехватке времени перенести. H1 и весь тест автоматически вместе не назначаются.
Индивидуальный итог
Четыре полные минуты лично. Условия заранее на бумаге. Памятка и разобранные модели разрешены; ключи и веб-разбор закрыты. Учитель не даёт учебных подсказок. Сбор после четырёх минут.
E1. Один шаг выбора для a = [2, 7, -1, 2], i = 0: найди индекс минимума m и запиши весь список после обмена первого элемента с найденным. Индексы с нуля.
E2. Исходные данные [1, 1, 4], полученный ответ [1, 4, 4]. По неубыванию ли ответ? Верная ли это сортировка исходных данных? Укажи, какое количество изменилось.
E3. После одного шага выбора первый элемент стоит на своём месте. Достаточно ли этого, чтобы заявить о полной сортировке любого списка? Какие два свойства итогового списка нужно проверить после всех шагов?
Разбор после своей попытки
После исправления выбери один новый пример из самопроверки.
Файлы для собственной практики
Распакуй ZIP до урока и открой sort-starter.py в готовом школьном Python 3. Единственная строка if False: помечена TODO. Полный алгоритм и обмен через temp подготовлены, сравнение дополняет сам ученик. Готового решённого B1 и личных наблюдений в архиве нет.
Материалы и самопроверка
Презентация, самостоятельный план учителя, рабочий лист, выходной билет и бумажная самопроверка открываются отдельными карточками. DOCX можно смотреть на сайте и скачать. PDF для печати:
Самопроверка на сайте: шесть вопросов с пояснениями, отдельно 6–8 минут. Бумажная версия с письменными основаниями и разбором — 8–12 минут. Все шесть новых письменных случаев — ещё 8–10 минут; выбирай прежде всего случай к своей ошибке. Эти модули не прибавляют к основным 45 минутам и не задаются целиком вместе с H1 автоматически. Пояснения и новые случаи для бумажного разбора есть в плане учителя.
Домашний перенос
H1. Дома 5–7 минут на бумаге. a = [5, 0, 3, -1], i = 0. Покажи один шаг выбора минимума и обмена, затем запиши полный результат сортировки по неубыванию. Отдельно проверь сохранение каждого исходного значения. ПК не нужен.
Полное условие и памятка есть на листе. Решение запиши в тетради. Достаточно 5–7 минут с сохранённой опорой.
Источники
ФРП информатики 7–9 классов, базовый уровень, содержание 9 класса на печатных с. 10–12, результаты с. 19–20 и тематическое планирование с. 41–42. Соответствующий час авторского КТП 2026/2027. Содержание не расширяется до углублённого курса и не подменяется подготовкой к экзамену. Учебник школы не указан; номера параграфов не назначены.
6 вопросов по теме «Сортировка выбором: шаг и проверка: самопроверка». Выбери ответ, прочитай объяснение и попробуй ещё раз, если ошибся.
Открыть отдельноВопрос 1 из 6
ТренировкаБез отметки и ограничения времени. Первый ответ учитывается отдельно от исправлений. При обновлении страницы ответы сбросятся.
Скачать и открыть
Материалы урока
7 материаловПодготовка к уроку
2 материала· для учителей
20 слайдов, отдельная качественная иллюстрация на каждом, редактируемые примеры и таблицы, практика, проверка ответа ИИ и заметки учителю.
Презентация
Самостоятельный план 45/40 минут: полные условия и ключи, карта 20 слайдов, помощь, индивидуальный итог, 18 объяснений самопроверки и шесть случаев переноса.
Методичка · MediaSchool
Рабочие листы и практика
4 материала· для учеников
Три страницы: памятка, собственные попытки, два основных действия, проверка совета ИИ, помощь, резерв и домашний перенос.
Рабочий лист
Два билета на А4. Четыре минуты индивидуально, памятка разрешена, шесть формирующих баллов.
Рабочий лист
Шесть вопросов совпадают с тестом на странице. Две страницы; 8–12 минут с письменными основаниями и разбором, ключи и новые случаи в плане.
Рабочий лист
Готовый алгоритм с одним TODO и инструкция для двух личных запусков и двух проверок.
Рабочий лист
Проверка знаний
1 материал· для учеников
6 вопросов с объяснениями и повторной попыткой.
Проверочная
От сообщества
Материалы сообщества0
Дополнения от учителей к этому уроку. Проверены модерацией, но не являются редакционным контентом MediaSchool.
Поделитесь первым материалом
Рабочий лист, презентация или методичка помогут другим учителям подготовиться к уроку.
Комментарии
Войдите, чтобы оставлять комментарии.
Пока нет комментариев. Будьте первым!