«Метод сортировки вставками» Цели урока: Образовательная: формирование у учащихся навыков составления алгоритмов сортировки массива методом прямого выбора и методом отбора; повторение алгоритмов ввода массива с клавиатуры и с помощью оператора случайных чисел;. Развивающая: Развитие алгоритмического мышления; умения применять полученные знания при решении задач различной направленности. Воспитательная: привитие учащимся навыков самостоятельности в работе; воспитание чувства коллективизма, ответственности. Тип урока: комбинированный урок. Ход работы: 1. Организационный момент Здравствуйте, ребята! Сегодня мы продолжим изучать массивы и их сортировки. Но прежде я предлагаю вам размяться и вспомнить то, что мы уже знаем о массивах. Для этого нужно ответить на вопросы с помощью пультов. После того, как я запущу таймер у вас будет 30 секунд на ответ, вам необходимо выбрать ответ и нажать соответствующую кнопку на пульте . 2. Актуализация знаний o Тест Приложение 1 с использованием системы интерактивного опроса InterWrite Response Методы сортировки Расскажите мне, пожалуйста, о методах сортировки, которые мы с вами уже изучили. Какие вы знаете? (метод пузырька и метод последовательных минимумов) Кто может рассказать нам, в чем суть метода пузырька? (сравниваются два рядом стоящих элемента массива) Метод последовательных минимумов, что происходит в нем? (каждый раз находится самый маленький элемент и ставится на первое место) Работа в группах. Разделитесь на 2 группы. Каждая группа получает по программе у одной группы метод сортировки пузырьком, у второй метод последовательных минимумов. Вам нужно исправить одну ошибку в программе и определить способ сортировки: как отсортирован массив по возрастанию или по убыванию. Карточка 1 группы Карточка 2 группы CLS INPUT " вв. размер массива"; n DIM a(n) FOR i = 1 TO n a(i) = INT(RND * 100) PRINT a(i); NEXT i PRINT FOR j = 1 TO n - 1 min = a(j) in = j FOR y = j + 1 TO n IF a(y) < min THEN min = a(y) in = y END IF NEXT y NEXT j FOR i = 1 TO n PRINT a(i); CLS INPUT"вв. размер массива"; n DIM a(n) FOR i = 1 TO n a(i) = INT(RND * 100) PRINT a(i); NEXT i PRINT PRINT "--------------------" 10 f = 1 FOR i = 1 TO n + 1 IF a(i) > a(i + 1) THEN f=0 SWAP a(i), a(i + 1) END IF NEXT i IF f = 0 THEN GOTO 10 FOR i = 1 TO n PRINT a(i); NEXT i END NEXT i END 3. Изучение нового материала Сортировка вставками — простой алгоритм сортировки. У этого метода ряд преимуществ: прост в реализации; эффективен на небольших наборах данных, на наборах данных до десятков элементов может оказаться лучшим; эффективен на наборах данных, которые уже частично отсортированы; это устойчивый алгоритм сортировки (не меняет порядок элементов, которые уже отсортированы); может сортировать список по мере его получения; не требует временной памяти, даже под стек. На каждом шаге алгоритма мы выбираем один из элементов входных данных и вставляем его на нужную позицию в уже отсортированном списке, до тех пор пока набор входных данных не будет исчерпан. Метод выбора очередного элемента из исходного массива произволен; может использоваться практически любой алгоритм выбора. Алгоритмы сортировки Приложения: Метод сортировки вставками, SOR_VS1, SOR_VS2 Физкультминутка 1. 2. 3. 4. 5. 6. 7. 8. Рисуй глазами треугольник. Теперь его переверни вершиной вниз. И вновь глазами ты по периметру веди. Рисуй восьмерку вертикально. Ты головою не крути, А лишь глазами осторожно ты вдоль по линиям води. И на бочок ее клади. Теперь следи горизонтально, И в центре ты остановись. Глазки крепко закрываем, Дружно до пяти считаем. Глаза открываем мы, наконец. 4. Практическая работа «Метод сортировки вставками» Задание 1. Реализовать на QBasic программу сортировки одномерного массива в порядке возрастания с помощью метода сортировки вставками. Задание 2. Переписать программу, используя подпрограмму вывода массива на экран. 5. Домашнее задание. Написать программу, сортирующую одномерный массив, в порядке убывания с помощью метода вставками. 6. Подведение итогов . Рефлексия. Приложение «Подведение итогов урока» с использованием системы интерактивного опроса InterWrite Response