Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



Методи обчислення адреси

М-блоковий пошук

 

Цей спосіб зручний при індексному збереженні списку. Передбачається, що вихідний упорядкований список В довжини N розбитий на М підсписків B=B1,B2,..,Bm довжини N1, N2,...,Nm, таким чином, що B=B1,B2,..,Bm.

Для знаходження ключа V, треба спочатку визначити перший зі списків Вi, і=1,...,М, останній елемент якого більше V, а потім застосувати послідовний пошук до списку Ві.

Збереження списків Ві може бути зв'язним чи послідовним. Якщо довжини всіх підсписків приблизно рівні і M=N, то Мах М-блокового пошуку дорівнює 2N. При однаковій частоті використання елементів Avg M- блокового пошуку дорівнює N.

Описаний алгоритм ускладнюється, якщо не відомо, чи дійсно в списку є елемент, що збігається з ключем V. При цьому можливі випадки: або такого елемента в списку немає, або їх кілька.

Якщо замість ключа V є упорядкований список ключів, то послідовний чи М-блоковий пошук може виявитися зручнішим, ніж бінарний, оскільки нетреба повторної ініціалізації для кожного нового ключа зі списку V.

 

 

Нехай у кожному з М елементів масиву Т міститься елемент списку (наприклад, ціле позитивне число). Якщо є деяка функція Н(V), що обчислює однозначно по елементі V-ого адресу- ціле позитивне число з інтервалу [0,М-1 ],то V можна зберігати в масиві T з номером H(V) тобто V=T(H(V)). При такому збереженні пошук будь-якого елемента відбувається за постійний час, не залежний від М.

Масив Т називається масивом хешування, а функція Н- функцією хешування.

При конкретному застосуванні хешування зазичай є визначена область можливих значень елементів списку V і деяка інформація про них. На основі цього вибирається розмір масиву хешування М і будується функція хешування. Критерієм для вибору М і Н є можливість їхнього ефективного використання.

Нехай треба зберігати лінійний список з елементів K1 ,K2,..,Kn, таких, що при Кij, mod(Ki,26)= mod(Kj,26). Для збереження списку виберемо масив хешування T(26) із простором адрес 0-25 і функцію хешування H(V)= =mod(V,26). Масив Т аповнюється елементами Т(Н(Кi))=Кi і Т(j)=0, якщо j є у (H(K1), Н(К2),..,Н(Кn)).

Пошук елемента V y масиві Т із присвоюванням Z його індексу, якщо V міститься в Т, чи -1, якщо V не міститься в Т, здійснюється так:

 

int t[26],v,z,i;

i=(int)fmod((double)v,26.0);

if(t[i]= =v) z=i;

else z= -1;

 

Додавання нового елемента V y список з поверненням у Z індексу елемента, де він буде зберігатися, реалізується фрагментом

 

z=(int)fmod((doule)v,26.0);

t[z]=v;

 

а виключення елемента V зі списку присвоєнням

 

t[(int)fmod((double)v,26)]=0;

 

Тепер розглянемо складніший випадок, коли умова Ki=Kj H(Ki)=H(Kj) не виконується. Нехай V— множина можливих елементів списку (цілі позитивні числа), у якому максимальна кількість елементів дорівнює 6. Візьмемо М=8 і як функцію хешування виберемо функцію H(V)=mod(V,8).

 

Контрольні питання

 

1. Наведіть приклади використання алгоритмів пошуку.

2. Поясність особливості алгоритмів пошуку рядків.

3. Порівняйте алгоритми лінійного та бінарного пошуку.

4. Навіть алгоритми пошуку рядків.

5. Назвіть найефективніші методи пошуку рядків.

Тести для закріплення матеріалу

 

1. Перерахувати алгоритми пошуку

а) бульбашки;

б) лінійний;

в) ортогональний;

г) бінарний;

д) інтерполяційний.

 

2. Перерахувати алгоритми пошуку

а) бульбашки;

б) лінійний;

в) Боуера і Мура;

г) бінарний;

д) Кнута-Моріса-Прата.

 

3. Перерахувати алгоритми пошуку в стрічках

а) Боуера і Мура;

б) бінарний;

в) Кнута-Моріса-Прата;

г) прямий пошук;

д) паралельний пошук.

 

4. За фраґментом програми визначте метод пошуку:

 

L:=0;R:=N;

while L<R do begin

m:=(L+R) div 2; i:=0;

while (T[m,i]=x[i]) and (x[i]<>00h) do i:=i+1;

if T[m,i]<x[i] then L:=m+1 else R:=m

end;

if R<N then begin

i:=0;

while (T[R,i]=x[i]) and (x[i]<>00h) do i:=i+1

end

 

а) Боуера і Мура;

б) бінарний;

в) Кнута-Моріса-Прата;

г) прямий пошук;

д) паралельний пошук.

 


 

ЛЕКЦІЯ № 7

 

Тема: Алгоритми сортування: методи внутрішнього сортування

 

Ціль: розглянути методи внутрішнього сортування та їх застосування

 


Читайте також:

  1. IP-адреси
  2. Автододавання та автообчислення.
  3. Автоматизація водорозподілу на відкритих зрошувальних системах. Методи керування водорозподілом. Вимірювання рівня води. Вимірювання витрати.
  4. Автономні ІР-адреси
  5. Агрегативна стійкість, коагуляція суспензій. Методи отримання.
  6. Адаптовані й специфічні методи дослідження у журналістикознавстві
  7. Адміністративні (прямі) методи регулювання.
  8. Адміністративні методи - це сукупність прийомів, впливів, заснованих на використанні об'єктивних організаційних відносин між людьми та загальноорганізаційних принципів управління.
  9. Адміністративні методи управління
  10. Адміністративні, економічні й інституційні методи.
  11. Адміністративно-правові (організаційно-адміністративні) методи мотивації
  12. Адміністративно-правові методи забезпечення економічного механізму управління охороною довкілля




Переглядів: 1143

<== попередня сторінка | наступна сторінка ==>
Методи обчислення адреси | Метод простого включення

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.011 сек.