- •Министерство образования Республики Беларусь
- •Содержание
- •З а д а н и е 1. Численное решение алгебраических уравнений
- •Краткие теоретические сведения
- •1. Метод простой итерации
- •В данном алгоритме число проделанных итераций подсчитывает параметр к, а правая часть выражения 1..4 обозначено как «fi». Точность решения – eps. Число итераций лучше ограничить.
- •2. Метод Ньютона
- •3. Метод секущих
- •5. Метод деления отрезка пополам
- •Варианты заданий
- •Контрольные вопросы
- •Задание 2. Аппроксимация функций
- •Краткие теоретические сведения
- •Интерполяционный многочлен Лагранжа
- •Тогда после нескольких преобразований получим:
- •Варианты заданий
- •Контрольные вопросы
- •Задание 3. Алгоритмы численного интегрирования
- •Краткие теоретические сведения
- •1. Формула прямоугольников.
- •2. Формула трапеций.
- •3. Формула Симпсона или формула парабол.
- •Контрольные вопросы
- •Индивидуальные задания
- •Алгоритмы сортировки выбором Простой линейный выбор
- •Сортировка обменом
- •Быстрая сортировка
- •Словесный рекурсивный алгоритм Хоара
- •3. Начало цикла 1: выполнять (циклdo)
- •Метод Шелла
- •Двоичный поиск
- •Теперь программа должна обратиться к функции сортировки sort() передав ей сформированный массив и его размер (предусмотреть подсчет числа перестановок).
- •Функция sort() после завершения работы возвратит отсортированный массив чисел (алгоритмы сортировки получить у преподавателя).
- •И в заключение вызывается функция бинарного поиска значения х, вводимого с клавиатуры.
- •Контрольные вопросы
- •Задание 5. «полиз»
- •1. Деревья (нелинейные структуры данных)
- •2. Построение обратной польской записи
- •Задания по вариантам
- •Учебно-методические материалы по дисциплине Основная литература
- •Дополнительная литература
- •Перечень методических материалов
Двоичный поиск
Двоичный поиск применяют для нахождения элемента X в отсортированном массиве a[1..N].
Основная идея заключается в следующем.
Пусть массив отсортирован в порядке убывания:
1) определяем средний элемент массива a[m], где m = (n+1)/2 ;
2) сравниваем его с Х, и если Х=a[m], то поиск на этом заканчивается;
3) если a[m] < Х, то все элементы от m до n отбрасывают;
4) если a[m] > Х, то отбрасывают элементы от 1 до m;
5) таким образом, каждый раз необходимо пересчитывать левую (L) или правую (R) границы, т.е. изначально L=1, R=n (первый шаг); на втором шаге или L=m или R=m т.е. на втором шаге либо левая, либо правая граница поменяет свое значение и т.д.;
6) поиск продолжается до тех пор, пока элемент не будет найден: a[m]=X, либо пока левая и права границы поиска не совпадут: (L==R), т.е. объект Х в массиве отсутствует.
количество операций сравнения, которые необходимы для нахождения элемента в упорядоченном массиве при помощи алгоритма бинарного поиска K=[log2 N]+1, где квадратные скобки обозначают целую часть числа находящегося в скобках. Алгоритм имеет следующий вид:
flag = «ложь»;
L=0;
R=N-1;
Начало цикла 1: выполнять пока (L ≤ R) и (flag = =«ложь»);
m=(R+L)/2;
если (a[m] = = X)
тогда
flag = «истина»;
иначе
если a[m]> X
тогда
R=m+1;
иначе
L=m-1;
все
все
конец цикла 1
Если (flag= = true) то
печать сообщения: «Элемент Х найден, его номер - m»,
иначе печать: «Элемента Х нет!»,
Варианты заданий
Программа должна сформировать случайным образом одномерный целочисленный массив из N чисел в диапазоне от 0 о 99 (значение N – с клавиатуры). Для этого:
в начале функции main() нужно вызвать стандартную функцию srand(time(NULL)); которая при каждом обращении к ней задает новое стартовое значение для генератора случайных чисел rand() использую для этого текущее системное время компьютера ;
далее в цикле заполнить массив N – случайными значениями: m[i]=rand()%100; (rand() возвращает очередное псевдослучайное число в диапазоне от 0 до RAND_MAX, обе функции декларированы в заголовочном файле stdlib.h, а time() – в time.h).
Теперь программа должна обратиться к функции сортировки sort() передав ей сформированный массив и его размер (предусмотреть подсчет числа перестановок).
Функция sort() после завершения работы возвратит отсортированный массив чисел (алгоритмы сортировки получить у преподавателя).
И в заключение вызывается функция бинарного поиска значения х, вводимого с клавиатуры.
№варианта |
Алгоритмы сортировки |
1. |
а). Простой линейный выбор б) Метод Хоара |
2. |
а). Простой линейный выбор б) Метод Шелла |
3. |
а) Линейный выбор с обменом (сортировка выбором). б) Метод Хоара |
4. |
а) Линейный выбор с обменом (сортировка выбором). б) Метод Шелла |
5. |
а) Стандартный обмен (сортировка обменом, метод "пузырька") б) Метод Хоара |
6. |
а) Стандартный обмен (сортировка обменом, метод "пузырька") б) Метод Шелла |
7. |
а) Стандартный обмен с контролем б) Метод Хоара |
8. |
а) Стандартный обмен с контролем б) Метод Шелла |
9. |
а). Простой линейный выбор б) Метод Хоара |
10. |
а). Простой линейный выбор б) Метод Шелла |
11. |
а) Линейный выбор с обменом (сортировка выбором). б) Метод Хоара |
12. |
а) Линейный выбор с обменом (сортировка выбором). б) Метод Шелла |
13. |
а) Стандартный обмен (сортировка обменом, метод "пузырька") б) Метод Хоара |
14. |
а) Стандартный обмен (сортировка обменом, метод "пузырька") б) Метод Шелла |
15 |
а) Стандартный обмен с контролем б) Метод Хоара |