Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Последовательное сканирование спискаСтр 1 из 3Следующая ⇒
Санкт - Петербург Г.
АННОТАЦИЯ Реферат составлен на страницах. Содержит 2 рисунка, 3 таблицы и 2 приложения. Ключевые слова: адресация, автокоррекция, сжатие. Целью реферата является разработка и описание трех практических задач современной информатики: ü адресации элементов баз данных, множества или списка, для определения по первичному ключу местоположения элемента в блоке информации; ü автокоррекции языковых текстов для обнаружения и исправления ошибок в текстах; ü сжатии данных, для хранения данных в предельно компактной форме.
СОДЕРЖАНИЕ АННОТАЦИЯ. 2 СОДЕРЖАНИЕ. 3 Введение. 4 ЧАСТЬ 1. МЕТОДЫ АДРЕСАЦИИ.. 5 ВВЕДЕНИЕ. 5 1. Теоретическая часть. 5 1.1. Последовательное сканирование списка.. 5 1. 2. Блочный поиск.. 5 1.3. Двоичный поиск.. 5 1.4. Индексно-последовательная организация.. 6 1.5. Индексно-произвольная организация.. 6 1.6. Адресация с помощью ключа, эквивалентного адресу.. 7 1.7. Алгоритм преобразования ключа в адрес.. 8 Выводы по части 1. 10 ЧАСТЬ 2. АВТОКОРРЕКЦИЯ ТЕКСТА. 11 ВВЕДЕНИЕ. 11 1. Теоретическая часть. 11 1.1. Методы обнаружения ошибок.. 11 1.2. Автоматизация процесса исправления.. 11 1.3. Диалоговый и пакетный режимы... 12 Выводы по части 2. 13 ЧАСТЬ 3. СЖАТИЕ ИНФОРМАЦИИ.. 13 ВВЕДЕНИЕ. 13 1. Теоретическая часть. 13 1.1. Сжатие числовых данных.. 13 1.2. Сжатие словарей.. 13 1.3. Сжатие специальных текстов.. 14 1.4. Сжатие структурированных данных.. 15 1.5. Сжатие текстовой информации общего вида.. 15 1.5.1. Адаптивные алгоритмы. .. 16 1.5.2. Статистические алгоритмы. 16 1.5.2.1. Кодирование фрагментов фиксированной длины... 16 1.5.2.2. Кодирование фрагментов переменной длины... 17 Выводы по части 3. 17 ПРИЛОЖЕНИЕ 1. Методы сжатия данных. 18 Метод Шеннона-Фано.. 18 Метод Хаффмена.. 18 Заключение. 20 Список литературы.. 20
Введение Настоящий реферат состоит из трех самостоятельных частей, в которых излагаются три практические задачи современной информатики – адресация элементов данных линейного списка, автокоррекция естественно языковых текстов, сжатие данных. Они призваны, с одной стороны, для ознакомления с некоторыми практическими задачами информатики, а с другой – закрепить навыки прикладного программирования и составления блок-схем. Первая задача нашла свое применение в таких программных продуктах, как системы управления базами данных, операционные системы (организация поисковых операций в системных данных), компиляторы (работа с таблицами идентификаторов) и многих других. Алгоритмы адресации имеют универсальный характер и используются практически во всех задачах, в которых ведется организация и поиск информации в одномерных массивах, независимо от места ее нахождения – основная память или внешняя. Вторая задача носит более частный характер, а изложенные методы используются при проверке орфографии в текстовых и табличных процессорах, издательских системах, а также как средство верификации результатов работы сканера – после распознавания текста для устранения возможных ошибок выполняется его орфографический анализ. Проблема сжатия данных решается в современных архиваторах. Они, как правило, используют комбинацию методов, изложенных в третьей части. Задачи программируются на языке программирования, который изучается в курсе «Алгоритмические языки и программирование», и, тем самым, закрепляют навыки, полученные в этой дисциплине. Кроме этого, требование подготовки блок-схем средствами WinWord позволяет углубить знания, связанные, с одной стороны, с логическим проектированием алгоритма, а с другой – с правилами начертания блок-схем. Запрограммированные и отлаженные задачи должным образом оформляются, что также способствует умению правильно и аккуратно закреплять результат работы на бумажном носителе информации.
ЧАСТЬ 1. МЕТОДЫ АДРЕСАЦИИ ВВЕДЕНИЕ Основную проблему при адресации элементов списков можно сформулировать следующим образом: как по первичному ключу определить местоположение элемента с данным ключом (задача поиска)? Существует несколько различных способов адресации. Они рассматриваются далее. Иногда бывает необходимо объединить несколько полей, чтобы образовать уникальный ключ, называемый в этом случае сцепленным ключом: например, ключ, идентифицирующий студента в институте, является комбинацией номера группы, фамилии, имени и отчества студента (есть случаи, когда в одной группе учатся студенты с одинаковыми фамилиями и именами). Кроме простого и сцепленного, ключ может быть первичным – определять максимум один элемент в списке или вторичным – определять множество (в общем случае не одноэлементное) элементов в списке. Например, фамилия студента в учебной группе, как правило, является первичным ключом, а пол студента – вторичный ключ, поскольку одному значению этого ключа (мужской или женский) соответствует, в общем случае, группа студентов.
Теоретическая часть Последовательное сканирование списка Наиболее простым способом локализации элемента списка является сканирование списка с проверкой ключа каждого элемента. Этот способ, однако, требует слишком много времени для большинства применений. Он может быть эффективен только при пакетной обработке последовательного файла, находящегося, например, на магнитной ленте, когда каждая запись все равно должна быть прочитана. Блочный поиск Если элементы упорядочены по ключу, то при сканировании списка не требуется чтение каждого элемента. Компьютер мог бы, например, просматривать каждый n-ный элемент в последовательности возрастания ключей. При нахождении элемента с ключом, большим, чем ключ, используемый при поиске, просматриваются последние n-1 элементов, которые были пропущены. Этот способ называется блочным поиском: элементы группируются в блоки, и каждый блок проверяется по одному разу до тех пор, пока ни будет найден нужный блок. Вычисление оптимального для блочного поиска размера блока выполняется следующим образом: в списке, содержащем N элементов, число просмотренных элементов минимально при длине блока, равной Ö N. При этом в среднем анализируется Ö N элементов. Двоичный поиск При двоичном поиске рассматривается элемент, находящийся в середине области, в которой выполняется поиск, и его ключ сравнивается с поисковым ключом. Затем поисковая область делится пополам, и процесс повторяется. При этом, если N велико, то в среднем будет просмотрено примерно log2N-1 элементов. Это число меньше, чем число просмотров для случая блочного поиска. Выводы по части 1. Одной из проблем при создании информационных систем является работа со структурированными данными, которые чаще всего являются линейными списками – упорядоченным множеством элементов, порядковые номера которых определяют местоположение элемента в списке. Элементы списка имеют структуру – они состоят из конечного множества полей, каждое из которых имеет определенный смысл, например, фамилии, адреса и т.д. Для таких списков важна задача адресации элементов списков – определение адреса элемента списка по одному из его полей или по совокупному набору полей. Такие поля называются ключевыми (или ключами) (в простейшем случае ключом, например, может быть номер зачетной книжки студента). ВВЕДЕНИЕ Программы автоматического обнаружения и исправления ошибок в текстах на естественных языках (назовем их автокорректорами - АК, хотя терминология ещё не сложилась) получают все большее распространение. Они используются, в частности, в пакетах WINWORD и EXCEL для проверки орфографии текстовой информации. Говоря точнее, АК производят автоматически лишь обнаружение ошибок, а собственно коррекция ведется обычно при участии человека. Теоретическая часть Методы обнаружения ошибок Известны, покрайней мере, три метода автоматизированного обнаружения орфографических ошибок в текстах - статистический, полиграммный и словарный. При статистическом методе из текста одна за другой выделяются составляющие его словоформы, а их перечень по ходу проверки упорядочивается согласно частоте встречаемости. По завершении просмотра текста упорядоченный перечень предъявляется человеку для контроля, например, через экран дисплея. Орографические ошибки и описки в сколь-нибудь грамотном тексте несистематичны и редки, так что искаженные ими слова оказываются где-то в конце перечня. Заметив их здесь, контролирующее лицо может автоматизированно найти их в тексте и исправить. При полиграммном методе все встречающиеся в тексте двух- или трехбуквенные сочетания (биграммы и триграммы) проверяются по таблице их допустимости в данном естественном языке. Если в словоформе не содержится недопустимых полиграмм, она считается правильной, а иначе - сомнительной, и тогда предъявляется человеку для визуального контроля и, если нужно, исправления. При словарном методе все входящие в текст словоформы, после упорядочения или без него, в своем исходном текстовом виде или после морфологического анализа, сравниваются с содержимым заранее составленного машинного словаря. Если словарь такую словоформу допускает, она считается правильной, а иначе предъявляется контролеру. Он может оставить слово как есть; оставить его и вставить в словарь, так что далее в сеансе подобное слово будет опознаваться системой без замечаний; заменить (исправить) слово в данном месте; потребовать подобных замен по всем дальнейшему тексту; отредактировать слово вместе с его окружением. Операции над сомнительным участком текста, указанные или иные возможные, могут комбинироваться исходя из замысла проектировщика АК. Результаты неоднократных исследований показали, что только словарный метод экономит труд человека и ведет к минимуму ошибочных действий обоих родов - пропуска текстовых ошибок, с одной стороны, и отнесения правильных слов к сомнительным, с другой. Поэтому словарный метод стал доминирующим, хотя полиграммный метод иногда и применяют как вспомогательный. Выводы по части 2. В высокофлективных языках, к которым относятся, в частности, все славянские, от одной основы могут образовываться до нескольких сот различных словоформ. Вэтих условиях в АК неизбежны средства морфологического анализа той или иной сложности, а непосредственное использование западных АК и перенос методов их работына неанглоязычные тексты едва ли даст удовлетворительные результаты, если исключить метод " грубой силы" - неограниченное наращивание объема оперативной памяти (ОП) и быстродействия ЭВМ. ЧАСТЬ 3. СЖАТИЕ ИНФОРМАЦИИ ВВЕДЕНИЕ Объектами сжатия являются: - числовые данные, - упорядоченные текстовые данные (словари), - специальные тексты на формализованных языках, - естественно-языковые тексты общего вида, - структурированные данные. В качестве количественной меры сжатия используется коэффициент сжатия - отношение длины первоначального к сжатому тексту, а также продолжительность требуемых преобразований. Теоретическая часть Сжатие числовых данных Наиболее распространены методы: разностное кодирование, кодирование повторений и подавление незначащих нулей. Суть разностного кодирования заключается в хранении вместо абсолютных значений разностей двух смежных чисел или отклонения чисел от их среднего значения. Например, для последовательности чисел 2, 14, 18, 27, 34 первый способ даст последовательность 2, 12, 4, 9, 7. Второй способ порождает последовательность: -17, -5, -1, 8, 15 (среднее значение для исходной последовательности - 19). Первый вариант эффективен для медленно меняющихся последовательностей, второй - когда максимальное отклонение от среднего значительно меньше абсолютного значения среднего. Кодирование повторений заключается в замене цепочки одинаковых символов кодом этого числа и числом повторений. Например, для последовательности 5555 6666 888888 применение этого способа даст последовательность 5(4) 6(4) 8(6). Подавление незначащих нулей означает отбрасывание незначащих нулей в старших разрядах целой части числа и в младших разрядах дробной части. Например, применение этого способа сжатия к последовательности 0010 01, 100 011 011 даст последовательность: 10 1, 1 11 11. Сжатие словарей Под словарями понимают списки неповторяющихся цепочек символов в алфавитном или ином строгом порядке. Такой словарь можно рассматривать как монотонную последовательность чисел и для его сжатия применять метод разностного кодирования (см. п.1.1). Здесь он заключается в отбрасывании у каждого слова начальных букв, совпадающих с начальными символами предыдущего слова и замене их на число отброшенных букв. Например, словарь: вычислитель вычислительный вычислять в результате рассматриваемого способа кодирования будет заменен словарем: вычислитель 11ный 6ять. Такой метод, однако, неудобен тем, что при декодировании любого конкретного слова требуется последовательно декодировать все предшествующие слова. Поэтому порой используются отдельные перечни наиболее часто встречающихся частей слов (суффиксы, префиксы), где каждой из них ставится в соответствие более короткий код, заменяющий её в словаре. Например, словарь: встречающийся заменяющий с помощью этого способа сжатия заменится на совокупность словарей: основной вспомогательный встреча1ся 1- ющий заменя1 Важнейшим здесь является алгоритм выбора достаточно длинных и часто встречающихся подцепочек. При его разработке используются эвристические алгоритмы, поскольку эффективного алгоритма поиска оптимального решения не существует. Когда составляющие словаря образуют сильно обособленные группы слов, можно разделить весь словарь на подсловари, присвоив каждому из них свой индекс, и кодировать слова независимо в каждом из них кодами минимальной длины, а слова из различных подсловарей различать этими индексами. Такой метод является модификацией описанного в п. 1.1 метода сжатия числовых данных через их среднее значение. Сжатие специальных текстов К специальным относятся тексты на формальных языках, отличающихся ограниченным словарем, замкнутой грамматикой. Сюда прежде всего относятся тексты на языках программирования, машинные коды, различные формулы и обозначения, а также ограниченные подмножество фраз естественного языка в таких четко формализованных задачах как организация реплик в интерактивных системах, выдача сообщений при компиляции и т.п. Для данного типа информации пригодны методы, описанные в п. 1.5. В то же время специфика этих текстов позволяет осуществить экономное хранение, основанное на выделении длинных часто повторяющихся фрагментов. Например, текст Фортран-программы: ТYРЕ *, ’ФОРТРАН’ ТYРЕ *, ’ПРОГРАММА' может быть представлен с использованием кодового словаря: программа словарь 1, 'ФОРТРАН' 1 - ТУРЕ * 1, 'ПРОГРАММА' Адаптивные алгоритмы Строят код постоянной длины для фрагментов переменной длины. Сжимают текст в процессе однократного его сканирования. Кодирование заключается в нахождении повторяющихся участков текста и замене каждого участка указателем, адресованным к той части текста, где такой участок уже встречался. Для декодирования в этом случае кодовой таблицы не требуется. В качестве указателя может использоваться структура (m, n), где m – количество символов назад или вперед по тексту, переместившись на которые можно найти подобный фрагмент текста; n – длина фрагмента в символах. Существует два типа встроенных указателей, указывающих на предшествующие или последующие участки. Алгоритмы, использующие указатели назад, могут работать с непрерывным входным потоком данных, генерируя непрерывный выходной поток сжатой информации. На каждом шаге алгоритма входной текст заполняет буфер фиксированной длины, внутри которого производится идентификация одинаковых подстрок максимально возможной длины. При нахождении двух таких подстрок вторая заменяется указателем, адресованным в начало первой. Алгоритмы с указателями вперед могут работать лишь с текстами конечной длины, поскольку требуют обратного сканирования текста. Здесь также используется поиск совпадающих подстрок в буфере переменной длины с уже закодированным текстом. Одной из характерных черт адаптивных алгоритмов является достаточная их универсальность, т.е. возможность работать с любыми, не только текстовыми данными, ненужность начальной информации о характере данных и их статистике. Эта черта снижает эффективность сжатия и достигаемое сжатие, как правило, меньше полученного другими методами. Но часто адаптивные алгоритмы просты и все же приемлемы по эффективности. Коэффициент сжатия текстовых данных этим методом лежит в пределах 1, 8 - 2, 5. Статистические алгоритмы. Выводы по части 3. В процессе ускоренной компьютеризации общества объемы данных, хранимых на машинных носителях, быстро растут. Ещё совсем недавно они измерялись килобайтами и мегабайтами, а теперь - гигабайтами и более крупными единицами. Естественно желание хранить эти данные предельно компактно. Причем интересны обратимые методы, устраняющие избыточность информации при сжатии и восстанавливающие её при разжатии. Описанные в реферате методы обратимы.
ПРИЛОЖЕНИЕ 1. Методы сжатия данных Метод Шеннона-Фано Знаки упорядочиваются по возрастанию их частот и образуют частичные суммы Si = Spj (j = 1, 2, 3, ….. i), где рj - частота j-того знака. Далее процесс разбивается на несколько шагов. В первом шаге столбец знаков рассекается на две части так, чтобы частичная сумма сечения была близка к 0, 5. Процесс деления подстолбцов повторяется так, чтобы каждый раз частичная сумма в точке сечения оказывалась ближе к среднему арифметическому частичных сумм на нижнем и верхнем краях разделяемого подстолбца. При каждом разбиении элементам верхней части ставится в соответствие 1, нижней - 0. Например: пусть знаки рi A 0, 11 B 0, 15 C 0, 20 D 0, 24 E 0, 30 Тогда процедура разбиения складывается из шагов: Знаки pi коды A 0, 11 1 1 111 B 0, 15 1 0 110 C 0, 20 0 10 D 0, 24 0 1 01 E 0, 30 0 00 шаг1 шаг2 шагЗ Метод Хаффмена Знаки упорядочиваются по возрастанию частоты. Два самых редких знака объединяются в один класс, и их частоты складываются. Полученные частоты переупорядочиваются и процесс повторяется до тех пор, пока все знаки ни будут объединены в один класс. Например,
A 0, 11 (0) C 0, 20 (0) B 0, 15 (1) D 0, 24 (1) C 0, 20 F 0, 26 D 0, 24 E 0, 30 E 0, 30
F 0, 26 (0) G 0, 44 (0) E 0, 30 (1) H 0, 56 (1) G 0, 44
Тогда коды исходных символов (они «собираются» из частных кодов дополнительных обозначений – F, G, H- в обратном относительно хода кодировки порядке):
Исходные Коды Пояснения символы A 100 (А вошел в F с кодом 0; F вошел в H с кодом 0; у H код 1. Тогда обратный порядок - 100) B 101 (B вошел в F с кодом 1; F вошел в H с кодом 0; у H код 1. Тогда обратный порядок – 101) С 00 (С вошел в G с кодом 0; у G код 0) D 01 (D вошел в G с кодом 1; у G код 0. Тогда обратный порядок – 01) E 11 (E вошел в H с кодом 1, у H код 1)
Заключение. Я думаю, что эти вопросы, определяющие часть информатики, посвященную обработке информации, помогают профессиональному программисту, с одной стороны, ознакомится с некоторыми практическими задачами информатики, а с другой стороны, закрепить навыки прикладного программирования и составления блок-схем. Эта довольно сложная часть информатики нуждается в более полном освещении, а о пользе улучшения навыков обработке текстовой информации, а также работы с базами данных нечего и говорить. Говоря коротко, и профессионал, и начинающий пользователь может найти для себя много полезного в предоставленной выше информации.
Список литературы Каган и Каневский “Цифровые вычислительные машины и системы”. Газета “Компьютер - инфо”. [1] Добавление незначащего нуля обусловлено требованием четности числа цифр Санкт - Петербург Г.
АННОТАЦИЯ Реферат составлен на страницах. Содержит 2 рисунка, 3 таблицы и 2 приложения. Ключевые слова: адресация, автокоррекция, сжатие. Целью реферата является разработка и описание трех практических задач современной информатики: ü адресации элементов баз данных, множества или списка, для определения по первичному ключу местоположения элемента в блоке информации; ü автокоррекции языковых текстов для обнаружения и исправления ошибок в текстах; ü сжатии данных, для хранения данных в предельно компактной форме.
СОДЕРЖАНИЕ АННОТАЦИЯ. 2 СОДЕРЖАНИЕ. 3 Введение. 4 ЧАСТЬ 1. МЕТОДЫ АДРЕСАЦИИ.. 5 ВВЕДЕНИЕ. 5 1. Теоретическая часть. 5 1.1. Последовательное сканирование списка.. 5 1. 2. Блочный поиск.. 5 1.3. Двоичный поиск.. 5 1.4. Индексно-последовательная организация.. 6 1.5. Индексно-произвольная организация.. 6 1.6. Адресация с помощью ключа, эквивалентного адресу.. 7 1.7. Алгоритм преобразования ключа в адрес.. 8 Выводы по части 1. 10 ЧАСТЬ 2. АВТОКОРРЕКЦИЯ ТЕКСТА. 11 ВВЕДЕНИЕ. 11 1. Теоретическая часть. 11 1.1. Методы обнаружения ошибок.. 11 1.2. Автоматизация процесса исправления.. 11 1.3. Диалоговый и пакетный режимы... 12 Выводы по части 2. 13 ЧАСТЬ 3. СЖАТИЕ ИНФОРМАЦИИ.. 13 ВВЕДЕНИЕ. 13 1. Теоретическая часть. 13 1.1. Сжатие числовых данных.. 13 1.2. Сжатие словарей.. 13 1.3. Сжатие специальных текстов.. 14 1.4. Сжатие структурированных данных.. 15 1.5. Сжатие текстовой информации общего вида.. 15 1.5.1. Адаптивные алгоритмы. .. 16 1.5.2. Статистические алгоритмы. 16 1.5.2.1. Кодирование фрагментов фиксированной длины... 16 1.5.2.2. Кодирование фрагментов переменной длины... 17 Выводы по части 3. 17 ПРИЛОЖЕНИЕ 1. Методы сжатия данных. 18 Метод Шеннона-Фано.. 18 Метод Хаффмена.. 18 Заключение. 20 Список литературы.. 20
Введение Настоящий реферат состоит из трех самостоятельных частей, в которых излагаются три практические задачи современной информатики – адресация элементов данных линейного списка, автокоррекция естественно языковых текстов, сжатие данных. Они призваны, с одной стороны, для ознакомления с некоторыми практическими задачами информатики, а с другой – закрепить навыки прикладного программирования и составления блок-схем. Первая задача нашла свое применение в таких программных продуктах, как системы управления базами данных, операционные системы (организация поисковых операций в системных данных), компиляторы (работа с таблицами идентификаторов) и многих других. Алгоритмы адресации имеют универсальный характер и используются практически во всех задачах, в которых ведется организация и поиск информации в одномерных массивах, независимо от места ее нахождения – основная память или внешняя. Вторая задача носит более частный характер, а изложенные методы используются при проверке орфографии в текстовых и табличных процессорах, издательских системах, а также как средство верификации результатов работы сканера – после распознавания текста для устранения возможных ошибок выполняется его орфографический анализ. Проблема сжатия данных решается в современных архиваторах. Они, как правило, используют комбинацию методов, изложенных в третьей части. Задачи программируются на языке программирования, который изучается в курсе «Алгоритмические языки и программирование», и, тем самым, закрепляют навыки, полученные в этой дисциплине. Кроме этого, требование подготовки блок-схем средствами WinWord позволяет углубить знания, связанные, с одной стороны, с логическим проектированием алгоритма, а с другой – с правилами начертания блок-схем. Запрограммированные и отлаженные задачи должным образом оформляются, что также способствует умению правильно и аккуратно закреплять результат работы на бумажном носителе информации.
ЧАСТЬ 1. МЕТОДЫ АДРЕСАЦИИ ВВЕДЕНИЕ Основную проблему при адресации элементов списков можно сформулировать следующим образом: как по первичному ключу определить местоположение элемента с данным ключом (задача поиска)? Существует несколько различных способов адресации. Они рассматриваются далее. Иногда бывает необходимо объединить несколько полей, чтобы образовать уникальный ключ, называемый в этом случае сцепленным ключом: например, ключ, идентифицирующий студента в институте, является комбинацией номера группы, фамилии, имени и отчества студента (есть случаи, когда в одной группе учатся студенты с одинаковыми фамилиями и именами). Кроме простого и сцепленного, ключ может быть первичным – определять максимум один элемент в списке или вторичным – определять множество (в общем случае не одноэлементное) элементов в списке. Например, фамилия студента в учебной группе, как правило, является первичным ключом, а пол студента – вторичный ключ, поскольку одному значению этого ключа (мужской или женский) соответствует, в общем случае, группа студентов.
Теоретическая часть Последовательное сканирование списка Наиболее простым способом локализации элемента списка является сканирование списка с проверкой ключа каждого элемента. Этот способ, однако, требует слишком много времени для большинства применений. Он может быть эффективен только при пакетной обработке последовательного файла, находящегося, например, на магнитной ленте, когда каждая запись все равно должна быть прочитана. Блочный поиск Если элементы упорядочены по ключу, то при сканировании списка не требуется чтение каждого элемента. Компьютер мог бы, например, просматривать каждый n-ный элемент в последовательности возрастания ключей. При нахождении элемента с ключом, большим, чем ключ, используемый при поиске, просматриваются последние n-1 элементов, которые были пропущены. Этот способ называется блочным поиском: элементы группируются в блоки, и каждый блок проверяется по одному разу до тех пор, пока ни будет найден нужный блок. Вычисление оптимального для блочного поиска размера блока выполняется следующим образом: в списке, содержащем N элементов, число просмотренных элементов минимально при длине блока, равной Ö N. При этом в среднем анализируется Ö N элементов. Двоичный поиск При двоичном поиске рассматривается элемент, находящийся в середине области, в которой выполняется поиск, и его ключ сравнивается с поисковым ключом. Затем поисковая область делится пополам, и процесс повторяется. При этом, если N велико, то в среднем будет просмотрено примерно log2N-1 элементов. Это число меньше, чем число просмотров для случая блочного поиска. |
Последнее изменение этой страницы: 2019-10-03; Просмотров: 113; Нарушение авторского права страницы