- •Министерство образования и науки российской федерации
- •Оглавление
- •Введение
- •Практическая работа № 1 Вычисление выражений с использованием стандартных функций
- •2. Постановка задачи
- •3. Варианты
- •4. Методические указания
- •Практическая работа №2
- •4. Методические указания
- •Практическая работа №3 Работа с одномерными массивами
- •1. Краткие теоретические сведения
- •2. Постановка задачи
- •3. Варианты
- •4. Методические указания
- •5. Содержание отчета:
- •Практическая работа №4 Сортировка массивов методом пузырька
- •3 . Методические указания
- •4. Содержание отчета:
- •Практическая работа № 6 Сортировка массивов методом Шелла
- •4. Содержание отчета:
- •5.Контрольные вопросы:
- •Практическая работа №7 Динамические массивы
- •2. Постановка задачи
- •3. Варианты
- •4. Методические указания
- •5. Содержание отчета
- •3. Варианты
- •4. Методические указания
- •6. Контрольные вопросы:
- •Практическая работа № 9
- •2. Постановка задачи
- •3. Варианты
- •6. Контрольные вопросы:
- •Практическая работа №10 Динамические структуры данных
- •2. Постановка задачи
- •3. Варианты
- •5. Содержание отчета
- •Практическая работа №11 Хранение данных на внешних носителях информации
- •1. Краткие теоретические сведения
- •2. Постановка задачи
- •3. Варианты:
- •6. Контрольные вопросы:
- •Практическая работа № 12 Функции для работы со строками.
- •5. Контрольные вопросы:
- •Литература:
3 . Методические указания
1. Формирование массива осуществляется с помощью датчика случайных чисел.. В массиве должны быть записаны и положительные и отрицательные элементы. Например, оператор a[I]=rand()%100-50; формирует псевдослучайное число из диапазона [-50;49]. 2. Вывод результатов должен выполняться после выполнения каждого задания. Элементы массива рекомендуется выводить в строчку, разделяя их между собой пробелом.
4. Содержание отчета:
Постановка задачи (общая и конкретного варианта).
Текст программы.
Результаты тестов.
5.Контрольные вопросы:
Что такое сортировка?
Что представляет собой сортировка методом пузырька? Почему она так называется?
Как вы считаете, каковы преимущества сортировки методом пузырька?
Объясните, почему алгоритм пузырька применяется только для небольших массивов?
Практическая работа № 5
Сортировка массивов методом вставок
Цель работы: нучиться сортировать одномерные и двумерные массивы методом вставок.
Теоретические сведения.
Сортировка вставками – простой алгоритм сортировки, преимущественно использующийся в учебном программировании. К положительной стороне метода относится простота реализации, а также его эффективность на частично упорядоченных последовательностях, и/или состоящих из небольшого числа элементов. Тем не менее, высокая вычислительная сложность не позволяет рекомендовать алгоритм в повсеместном использовании.
Рассмотрим алгоритм сортировки вставками на примере колоды игральных карт. Процесс их упорядочивания по возрастанию (в колоде карты расположены в случайном порядке) будет следующим. Обратим внимание на вторую карту, если ее значение меньше первой, то меняем эти карты местами, в противном случае карты сохраняют свои позиции, и алгоритм переходит к шагу 2. На 2-ом шаге смотрим на третью карту, здесь возможны четыре случая отношения значений карт:
первая и вторая карта меньше третьей;
первая и вторая карта больше третьей;
первая карта уступает значением третьей, а вторая превосходит ее;
первая карта превосходит значением третью карту, а вторая уступает ей.
В первом случае не происходит никаких перестановок. Во втором – вторая карта смещается на место третьей, первая на место второй, а третья карта занимает позицию первой. В предпоследнем случае первая карта остается на своем месте, в то время как вторая и третья меняются местами. Ну и наконец, последний случай требует рокировки лишь первой и третьей карт. Все последующие шаги полностью аналогичны расписанным выше.
Рассмотрим на примере числовой последовательности процесс сортировки методом вставок. Клетка, выделенная темно-серым цветом – активный на данном шаге элемент, ему также соответствует i-ый номер. Светло-серые клетки это те элементы, значения которых сравниваются с i-ым элементом. Все, что закрашено белым – не затрагиваемая на шаге часть последовательности.
Этот метод похож на метод пузырька. Происходит такое же разбиение массива на отсортированную и не отсортированную части, но перемещение первого элемента остатка на принадлежащее ему место в итоге делается не сравнением двух соседних элементов, а с помощью метода двоичного поиска, который удобно оформить в виде отдельной процедуры.
Реализация алгоритма сотрировки вставками на языке С++.
int i,j;
for(i=1;i<size;i++){
int tmp = mas[i];
for(j=0;j>0&&mas[j-1]>tmp;j--){
mas[j]=mas[j-1]
}
mas[j]= tmp;
}
Схема алгоритма методом сортировки включением представлена на рис. 3.
Рисунок 3. Блок-схема алгоритма прямым включением
Постановка задачи:
Отсортировать одномерный и двумерный массивы методом вставок по возрастанию.
Массивы сгенероровать с помощью генератора случайных чисел, вывести на печать.
Методические указания
1. Формирование массива осуществляется с помощью датчика случайных чисел.. В массиве должны быть записаны и положительные и отрицательные элементы. Например, оператор a[I]=rand()%100-50; формирует псевдослучайное число из диапазона [-50;49]. 2. Вывод результатов должен выполняться после выполнения каждого задания. Элементы массива рекомендуется выводить в строчку, разделяя их между собой пробелом.