Лабораторная работа № Проектирование алгоритмов. Оценка корректности и эффективности алгоритма. Алгоритм определения корня квадратного уравнения. Формула Герона для определения площади треугольника



Download 0,59 Mb.
bet15/19
Sana19.04.2022
Hajmi0,59 Mb.
#563176
TuriЛабораторная работа
1   ...   11   12   13   14   15   16   17   18   19
Bog'liq
Лабораторная работа № 1-6

3. Задание на лабораторную работу
Создать массив на 30 элементов заполнить случайными значениями:

  1. Найти элемент в массиве А и найти число сравнений с помощью линейного поиска.

  2. Найти все элементы, модуль которых больше 20 и меньше 50, с помощью линейного поиска.

  3. Вывести на экран все числа массива А кратные 3 (3,6,9,...) с помощью линейного поиска.

4. Содержание отчета
В отчете следует указать:

  • Название работы.

  • Цель работы.

  • Теоретическая часть.

  • Выполненное задание.

  • Заключение (выводы).

  • Литература.

Лабораторная работа № 5. Разделение пространства на две равные части при решении алгебраических и трансцендентных уравнений, итерационные методы.


  1. Цель работы

Изучить структуру данных бинарных деревьев поиска, разработать класс TFindTree для работы с ней и получить практический навык его использования.

  1. Теоретические сведения

Бинарное дерево поиска (FindTree) – это дерево, значение каждого узла которого удовлетворяют условию: левый сын меньше родительского узла, а правый сын - больше или равен родительскому узлу.
Рис. 1. Структура бинарного дерева поиска
Таким образом, в левой ветви любого узла будут находиться узлы с меньшими значениями, а в правом – с большими или равными значениями, чем в самом узле.
Такая структура данных позволяет сократить временные затраты на поиск заданного значения узла. В наилучшем случае искомый элемент будет найден первым в корне дерева, а в наихудшем случае – на последнем уровне. Для этого потребуется k+1 сравнение, где k – последний уровень дерева. В среднем для поиска случайного элемента потребуется   сравнений.
Уровень дерева связан с количеством узлов n по формуле:
 .
Поэтому, средние затраты на поиск будут определяться выражением:
 .
Чем больше элементов в списке, тем выгодней использование бинарных деревьев поиска.
Например, при n = 7 методом перебора потребуется в среднем   сравнения, а с помощью бинарных деревьев   сравнения.
При n = 1023 методом перебора потребуется в среднем   сравнений, а с помощью бинарных деревьев   сравнений.
Рис. 2. Эффективность методов поиска
Бинарное дерево поиска позволяет быстро отсортировать массив. Точнее, в бинарном дереве поиска, массив уже отсортирован по возрастанию или по убыванию. Для его получения достаточно провести симметричный проход дерева. Например, для дерева, представленного на рисунке 1, проход в порядке LNR даст отсортированный массив по возрастанию: (10, 20, 30, 40, 50, 60, 70), а в порядке RNL – по убыванию: (70, 60, 50, 40, 30, 20, 10).
Однако для бинарных деревьев поиска необходимо определенным образом добавлять и удалять узлы.
При вставке узла в бинарное дерево поиска может быть нарушена его структура, поэтому перед вставкой, необходимо найти позицию, куда необходимо вставить узел с новым значением.
Алгоритм вставки начинается с корня дерева. Если он существует, то осуществляется поиск места для вставки, если не существует, то вставляемый узел становится корнем. Поиск места осуществляется по правилу: если вставляемый узел меньше значения текущего узла, то место для вставки будет левым сыном, в противном случае – правым сыном. Поиск для вставки осуществляется до тех пор, пока не будет найден листовой узел. Текущий узел становится левым сыном найденного листа, если его значение меньше значения найденного узла и правым – наоборот.

Рис. 3. Вставленный узел становится левым сыном листа

Рис. 4. Вставленный узел становится правым сыном листа
При удалении узла могут возникнуть четыре случая:
1. Удаляемый узел является листом.
В данном случае необходимо из памяти удалить узел, первоначально разорвав его связь с родителем, установив ее в NULL.

Рис. 5. Удаление листового узла
Р  ис. 6. Дерево после удаление листового узла
2. Удаляемый узел имеет левого сына.
В данном случае необходимо первоначально разорвать связь с родительским узлом и сделать соответствующим наследником родителя левого сына удаляемого узла, который становится узлом замещения.

Рис. 7. Дерево перед удалением узла с левым поддеревом

Рис. 8. Дерево после удалением узла с левым поддеревом
3. Удаляемый узел имеет только правого сына
В данном случае узлом замещения становится правый сын, который становиться соответствующим сыном родителя удаляемого узла.
4. Удаляемый узел имеет и левого и правого сыновей.

Рис. 8. Дерево перед удалением узла
В данном случае возникает проблема нахождения замещающего узла. Ни левый, ни правый сын не могут стать ими, так как при этом может нарушиться структура бинарного дерева поиска.
Замещающий узел ищут либо в левой ветви удаляемого узла, используя принцип max-min, либо в правой ветви, используя принцип min-max.
По принципу max-min ищется максимальный элемент из минимальных элементов, находящихся в левом поддереве. Например, при удалении узла со значением 20, это узел 15.
По принципу min-max ищется минимальный элемент из максимальных элементов, находящихся в правой ветви. Например, при удалении узла со значением 20, это узел 30.
После нахождения максимального элемента из минимальных элементов, возникают две ситуации:

  1. Замещающий узел является листом.


Рис. 9. Дерево перед удалением узла
В данном случае замещающий узел располагают вместо удаляемого узла, переустанавливая связи с родительским узлом, а также с родителем и с левым и с правым наследниками удаляемого узла.

Рис. 10. Дерево после удаления узла

  1. Замещающий узел имеет левое поддерево.


Рис. 11. Дерево перед удалением узла
В данном случае первоначально в правую ветвь родителя замещающего узла добавляют левую ветвь замещающего узла.

Рис. 12. Дерево после удаления узла
При выполнении операции удаления узла в любом случае, первоначально переустанавливаются все связи с родителем. Только после сам узел удаляется из памяти.

Download 0,59 Mb.

Do'stlaringiz bilan baham:
1   ...   11   12   13   14   15   16   17   18   19




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish