Главная » Просмотр файлов » Virt N. Algoritmy struktury dannyh = programmy (ru)(T)(410s)

Virt N. Algoritmy struktury dannyh = programmy (ru)(T)(410s) (522393), страница 51

Файл №522393 Virt N. Algoritmy struktury dannyh = programmy (ru)(T)(410s) (Алгоритмы + структуры данных = программы) 51 страницаVirt N. Algoritmy struktury dannyh = programmy (ru)(T)(410s) (522393) страница 512013-09-14СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 51)

ред. т'. Дикамккеские информационные структуры Для разрешения конфликтов в литературе предлагались различные функции. Обзор этой темы Моррисом в 1968 г, 14,8] стимулировал активную деятельность в этой области. Простейший метод — это, считая, что таблица круговая, исследовать следующее место и так до тех пор, пока не будет найден элемент с заданным ключом или не встретится свободное место. Следовательно, 6(1) = й индексы йь используемые для поиска, в этом случае имеют вид: йе = Н (и) й,=(бе+1)шой М, 1=1...йт — 1.

(4.90) Этот метод называется линейным опробированием, он имеет тот недостаток, что элементы обычно скапливаются вокруг первичных ключей (ключей, при которых мы не столкнулись с конфликтом при включении). В идеале, конечно, следует выбирать такую функцию О, которая вновь равномерно рассеивает ключи на оставшемся пространстве. Но на практшке это требует слишком больших затрат, н предпочтение от- зывание в цепочку всех элементов с одинаковым первичным индексом Н(й). Этот прием называется непосредственным сцеплением. Элементы такого списка могут либо находиться в первичной таблице, либо нет, в последнем случае память, в которой они размещаются, называется областью переполнения.

Этот метод довольно эффективен, хотя он имеет тот недостаток, что нужно вести вторичные списки и что каждая строка должна содержать пространство для ссылки (или индекса) на список элементов, вступающих с ним в конфликт. Другой метод разрешения конфликтов состоит в том, чтобы полностью отказаться от ссылок и просто просматривать один за другим различные элементы таблицы, пока не будет найден нужный элемент или не встретится свободное место, что означает отсутствие в таблице данного ключа. Этот метод называется открытой адресацией 14.9). Разумеется, последовательность индексов при вторичных пробах для данного ключа должна быть всегда одной и той >ке. Можно набросать примерно такой алгоритм просмотра таблицы: й:= Н(й) 1:=О; гереа( И Т>1>)Леу = й 1Ьеп элемент найден е(зе 14 Т1й),йеу =свободно 1Ьеп элемента нет в таблице е1зе Ьеп>п (конфликт) 1;=1+ 1, й:= Н()е)+ 6(1) епй ««111 найден или нет в таблице (или таблица полна) 4.6.

Преобраввваннн ключи (раеетакввка) Зот дается методам, представляющим компромисс; будучи простыми для вычисления, они все же лучше линейной функции (4,90). Один из них состоит в использовании квадратичной функции, такой, что последовательность индексов для опробирования есть Ьа —— О (й), Ь, =(йе+ 1а)глоб йГ (Е > О), (4.91) Отметим, что вычисление следующего индекса не требует возведения в квадрат, если использовать рекуррентное соотношение (4.92) для Л, = 1х и И; = 21 + 1: 6;„,=6;+д, И И +2 (1>0) с йе = 0 н Ив = — 1.

Эгот метод называется квидратичньем опробированием, он успешно позволяет избежать первичного скопления, хотя практически не требует никаких дополнительных вычислений. Небольшой недостаток заключается в том, что прн опробировании рассматриваются не все строки таблицы, так что при включении можно не встретить свободного места, хотя такие места еще остаются. Фактически если ес размер )ч' — простое число, то при квадратичном опробировании используется по меньшей мере половина таблицы. Это можно получить из следующих рассуждений: если 1-я и 1-я пробы приводят к одной и той же строке таблицы, то справедливо равенство 1е шоИ)У =)'шоИ ЛГ 1' — )а = 0 (гпоИ йГ).

Разбивая разность иа два множителя, мы получаем (1+ 1) (1 — 1) = — 0(шоИ М), Поскольку 1чь(, мы видим, что либо 1, либо 1 должно быть не менее У/2, чтобы получить с'+1 = сЛ', где с — целое число. На практике этот недостаток не так существенен, поскольку необходимость выполнять У/2 вторичных проб для разрешения конфликтов встречается очень редко и лишь в том случае, когда таблица уже почти заполнена, Чтобы на примере продемонстрировать метод рассеянных таблиц, мы переписали программу 4.5 — формирование таблицы перекрестных ссылок — в виде программы 4.8.

Принципиальное отличие заключается в формулировке процедуры поиска (веагсй) и в замене ссылочного типа гсогдге1 таблицей слов Т. Функция расстановки и есть модуль размера таблицы; для разрешения конфликтов выбрано квадратичное ргопгапг сгоггге3' (3,оигриг); (построение таблицы перекрестных ссылок с использованием расстановки) (аЬе( 13; еопэ( с( ==- 10; (длина слова) с2 =-. 8; (количество слов в строке) сЗ = б; (количество циФр в числе) с4 =- 9999; (максимальный номер строки) р = 997; (простое число) фгее .— = ' (уре 1пг(ех == О ..р," !1етге3 =- '(!1егп; п'огг(:--- гееогд А.еу: а13а; 3!ггг, !агг: 11егпге3; 1о!: (пйех епа; 11ет =- расЬед гееогд 1по: О..с4; пех1: 1гетге3' епд; гаг ю, 1ор: и1йЕХ; Арй( й71еаег и: и1ееег; (номер пгекуи(ей ппроки) и1: а13а; 3' 1ех!; а: агапу (1 ..

с)) оХ сйаг; 1: аггау (О., р) оГ ггоы; (массив длл расапаиовки) ргьеейпге геогсй; гаг 1ий,1: йи,'..т; х: йетге3; 3: Ьоо1еап; (глобальные переменные: 1, Ы, 1ор) Ьеайп Ь:=- огй(й1) гаод р; „1':== 3а(ге; Ы:== 1; пеи(х); х(.1по:= и; х(.пех1:=- пН; гереаг К 1(Ь) (геу — — И 1Ьеп Ьер!п (найдено) 1':= ггие; 1(Ь) .1агг(гпехг:= х; 1(Ь).(аг1:= х епд е(ае И 1(Ь) (сеу =- 3гее (Ьеп ьеп!п (новый элемент) 3':== ггие; И)1Ь 1(Ь) до Ьеп(п (геу :== и1;,фгг1;= х; 1ае1 .'= х; 3Ь1 )= 1ор ' епй; Сор:= Ъ евй.е!ее Ьеп!п (конфликт) Ъ: Ъ+4 а:= й+2; Ы Ъ > р СЬеп Ъ:= Ъ вЂ” р; !С гС = р ЬЬеп Ъеп1в итССе1п(тАВИ ОЧЕвйол!); иеСо 13 евй епй пвф)1 С епй (оеагсЪ): угесейпге рппссаЪ1с „' так 1,1,т: !паек; ркесейвсе рг1п !поги(ж.

"жогд); тес 1: Сп!екег; х: !СетгеЯ Ьеп1в и г!Сс(' ', ейсеу) „ х:= гг.угггс; 1:== О; хереае зЕ 1 =- с2 СЬев Ьерп ггг!!е1п; 1:.= О; ьг!Сс(' 'с1+1) елй; 1;= 1+1; ггг!се(хтлпо:сз)! х;= хТ,пехс ы01 х = л11'; и кис!и епй (рппсггогг1) 1 Ъеп!в 1:= Сор; вЬИе 1 Ф р йе ъеп!п (просмотр связанного списка и поиск минимйгсьиого ключа) т:= 1; Л '= 6Я.~о!' пЬ!1е Л ~ р йо Ьев)п 11 С(Л)ЛссУ < С(т)ЛгеУ СЬеп т:= Л; Л:=- СИЮ епй; рг1пСпогИЯт)) ! Ми ФССЬеп Ьев1п г(т)Лсеу:= ф)./ссу; С(т)ЯМ:=- г(1)рог; ~т),1акС:= СЯЛаьС епй; 1:= С(!1Ло! елй евй (рг1пССаЪ!е); Ьеп(в и:= О; И:= с1; сор:= р; геьеСЯ; В1О 4.

Динамические информояиокные структуры тот 1 г:= 0 то р Йо 1[1).1сеу:= угее; аЫ!е -зео/'(Д до Ьед1п И н =- с4 1Ьеп л;= О; и:=- и+1; тугие(кпсЗ); [следуютаал си[рока) ятйе(' '); аЫ1е —,ео[л(~) до Ьед!п [ просмотр непустой строки'1 И Д' 1п ['А' ..'Е') 1Ьеп Ьее1п В:=- О; тереа1 И Ь < с1 тйеп Ьерп lс: — к-1-1; а[к):* епд; жесте(гт [); кот(тг) аа1Н з(У[ Ра ['А'., 'Е', 'О'..'9'))1 И и, И 11сеп И;=- )1 е1ке тереа1 а[/сЦ: — ' '; И:= И вЂ” 1 ап01 И =- 1с; раск(а,1,гИ); зсагсй; еаб е1зе ,, Ьед1п [проверка на кавычку или коимви~цриЦ И у[ "" 1Ьеп гереа1 юФе(т [); Хесе апб1 „г[ =- "" е)ке И Л == '(' 1Ьеп гереа1 кгйе(Д); дстЯ апб1 Г[ =- ')' 1 и'гйс(т [); гет(г') ;па епс1; нтйе)н; уст(у р епд; 13: раке; рггпгаЫе епд . Программа 4.8.

Построение таблицы перекрестных ссылок с использованием Функция расстановки. опробирование. Отметим, что для эффективной работы сушественно, чтобы размер таблицы был простым числом. Несмотря на то что метод преобразования ключа в этом случае очень эффектннен — намного эффективнее, чем использование деревьев, — он имеет недостаток. После просмотра текста н выбора слов мы хотим расположить эти слова АЕ.

Првобравованин ключа (расстановка) в алфавитном порядке, При работе с деревьями это очень просто, так как в их основе уже лежит упорядоченность. Но это не так в случае преобразования ключа. Вот здесь и сказывается, что таблицы — «рассеянные». Поэтому печати таблицы должна предшествовать сортировка (для простоты в программе 4.8 используется сортировка простым выбором); но кроме того, оказывается полезным сохранять историю включения элементов, для чего они связываются в специальный список.

Поэтому преимущества метода расстановки при поиске отчасти уменьшаются из-за необходимости дополнительных действий при выполнении всей задачи построения упорядоченной таблицы перекрестных ссылок. 4.6.3. Анализ метода преобразования ключа Очевидно, что в наихудшем случае включение и поиск прн использовании метода расстановки будут иметь очень плохие характеристики. Ведь вполне может быть, что аргумент поиска будет таким, что все пробы будут попадать как раз на занятые места и пропускать нужные (или свободные), В самом деле, тому, кто использует метод расстановки, нужно свято верить в теорию вероятностей. Все, в чем мы хотим быть уверенными,— это что е среднем число проб мало.

Следующие вероятностные рассуждения показывают, что оно даже очень мало. Вновь предположим, что все возможные ключи равновероятны н функция расстановки Н равномерно рассеивает их по всему интервалу индексов. Затем предположим, что нужно вставить ключ в таблицу размером и, которая уже содержит й элементов. Вероятность попадания на свободное место с первого раза в этом случае равна 1 — й/и. Одновременно это есть вероятность р! того, что потребуется только одно сравнение. Вероятность, что понадобится ровно одна вторая проба, равна вероятности конфликта при первой попытке, умноженной иа вероятность попадания на свободное место в следуюший раз.

В целом мы получаем вероятность р; того, что включение потребует ! проб: Р! = к И вЂ” и р, = — ' —, и и — 1' (4.93) й — 1 а — и з Рз= „ и — 1 и — 2 ' !т — 1 и — 2 й †!+2 и — и и и — 1 и — 2 ''' и — т+2 и — !+! 2!2 4. Динамические информиционные структуры Следовательно, среднее значение числа проб, требующихся при вставке (й+ 1)-го ключа, равно а+! и — и 1с и — и а+! Х 11 ц + и и — 1 +' ! ! ..+(у+1) —" " ' — ',' ... ' )= "+' ~Ь й — 1 и — 2 1 ) и+1 и и — 1 и — 2 ' и — а+!) и — 6+1* (4.94) Поскольку число проб при включении элемента равно числу проб при его поиске, результат (4.94) можно использовать для вычисления среднего числа Е проб, требующихся прн обращении к произвольному ключу в таблице.

Характеристики

Тип файла
DJVU-файл
Размер
9,82 Mb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6314
Авторов
на СтудИзбе
312
Средний доход
с одного платного файла
Обучение Подробнее