Пусть задан массив a из n элементов. Сравниваются пары значений a[i] и a[i+1] в интервале от 1 до n-1: если a[i]a[i+1], то значения меняются местами. Алгоритм останавливается, когда больше нечего переставлять; в этом случае массив отсортирован. В каждом цикле проверки самый «легкий» элемент оказывается наверху списка. Поэтому на i-том цикле сортировку массива начинают с i-того элемента.
Сортировка методом отбора
При первом проходе ищется минимальное значение массива a, которое затем меняется местами с первым элементом a[1]. Затем поиск продолжается на оставшихся n-1 элементах, ищется второй минимум, который переставляется с элементом a[2] и т.д.
Сортировка методом вставки
На первом шаге выполняется сортировка первых двух элементов массива. Далее алгоритм ставит третий элемент в порядковую позицию, соответствующую его положению относительно первых двух элементов. Затем в этот список вставляется четвертый элемент и т.д. Процесс продолжается до тех пор, пока все элементы не будут отсортированы.
Задания для самостоятельной работы
Разработать программу на Турбо Паскале, которая обеспечивает решение поставленной задачи в соответствии с предложенным вариантом. Первая цифра — номер задания, вторая — номер варианта.
задание 1 – один цикл, для обработки массива
задание 2 – два цикл, предобработка и формирование нового
Задачи
1.Разработать программу, для решения поставленной задачи
1.1.Из массива A(N) перепишите элементы в массив B, так чтобы B содержал возрастающую последовательность чисел.
1.2.Переписать в массив Y элементы массива X(N) кратные m.
1.3.Переписать в массив B элементы массива A(N) кратные A(m).
1.4.В массив B переписать положительные элементы массива A(N).
1.5.В массив B переписать четные элементы массива A(N).
1.6.Из массива A(N) перепишите элементы в массив B, так чтобы B содержал убывающую последовательность чисел.
1.7.В массив R переписать номера элементов массива P(N), для которых выполняется условие: соседство двух положительных чисел.
1.8.В массив R переписать номера элементов массива P(N), для которых выполняется условие: соседство четных или нечетных чисел.
1.9.В массив B переписать элементы массива A(N), которые больше заданного F.
1.10.Сформировать массив Y из массива X(N), так чтобы Y не содержал повторяющиеся элементы.
1.11.Сформировать массив Y из массива X(N), так чтобы Y содержал элементы, которые больше двух раз присутствуют в массиве X(N).
1.12.Сформировать массив Y из массива X(N), так чтобы Y не содержал нулевых элементов.
1.13.Сформировать массив Y из массива X(N), так чтобы Y содержал только полиндромы массива X(N).
2.Разработать программу, для решения поставленной задачи
2.1.Переписать из массива Y(N) в массив X элементы, значения которых больше среднего арифметического элементов массива Y(N).
2.2.Переписать из массива Y(N) в массив X элементы, значения которых больше среднего гармонического элементов массива Y(N).
2.3.В массив R переписать элементы массива D(N), значения которых удовлетворяет условию, где- среднее арифметическое элементов массива D(N).
2.4.Переписать из массива Y(N) в массив X элементы, которые меньше среднего геометрического элементов массива Y(N).
2.5.Переписать в массив Y элементы массива X(N) кратные минимальному элементу массива X(N).
2.6.Переписать в массив Y элементы массива X(N), которые на m меньше максимального значения массива X(N).
2.7.Из массивов A(N) и B(N) сформировать массив C, состоящий из тех элементов, которые присутствуют в обих массивах.
2.8.Из массивов X(N) и Y(N) сформировать массив Z, состоящий из тех элементов, которые присутствуют только в одном из массивов.
2.9.Сформировать массив точек, лежащих в заданной четверти декартовых координат. Координаты точек заданы массивами X(N)иY(N).
2.10.Сформировать массив точек, лежащих внутри прямоугольника. Координаты точек заданы массивами X(N)иY(N). Координаты прямоугольника ввести с клавиатуры.
2.11.Сформировать массив точек, лежащих внутри окружности радиусом r. Координаты точек заданы массивами X(N)иY(N).
Контрольные вопросы
- Сформулируйте основные правила, использующиеся приоформлении исходного текста программы.
- Сформулируйте правила использующиеся при созданиинового идентификатора.
- Опишите способы использования в выраженияхвстроенных функций Турбо Паскаля.
- Для чего используются структурные скобки begin … end?
- Приведите пример использования полной и сокращённойформы записи условного оператора.
- В каких случаях лучше использовать оператор цикла спараметром, а в каких оператор цикла с предусловием?
- Какое условие проверяется в операторе цикла спостусловием Турбо Паскаля?
- Можно ли в Турбо Паскале описать массив, каждыйэлемент которого является массивом, записью?
- Для чего используется оператор выбора case?
- Как распределяется приоритет выполнения операцийТурбо Паскаля?
- В каких случаях используются массивы?
- Какой оператор цикла лучше использовать при работес массивами? Почему?
Библиографический список
1. Фаронов В.В. Turbo Pascal 7.0. Начальный курс. Учебное пособие. – 2000 г.
2. Долинский М.С. Алгоритмизация и программирование на Turbo Pascal: от простых до олимпиадных задач: Учебное пособие. – СПб.: Питер, 2005.
3. Зуев Е.А. Turbo Pascal. Практическое программирование – М.: «Издательство ПРИОР», 1999.
Статьи к прочтению:
Алгоритм сортировка методом пузырька
Похожие статьи:
-
Улучшенные методы сортировки (шелла, сортдеревом).
Метод Шелла.В 1959 году Д.Шелл предложил алгоритм, который можно рассматривать как усовершенствование сортировки простыми включениями. Как уже…
-
Сортировка методом распределения
Данный тип сортировки по своей сути является обратным слиянию. Данный тип сортировки начал широко использоваться со времен машин с перфокарточным…