Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
vidpovidi.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
186.88 Кб
Скачать

16.Алгебраїчний підхід до операції із структурами

Спеціалізовані структури даних не забезпечують високої якості програмування, тому що при бажані будь-яке поле, будь-якої структури, можна заповнити довільною інформацією і спровокувати програму на неправильні дії.

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

17.Методи пошуку в масиві

Пошук є однією з найбільш поширених задач програмування. Пошук в масиві за певним ключем полягає у визначенні номерів елементів масиву або їх значень, для котрих деяка умова, «ключ», виконується. Розрізняють задачі пошуку в упорядкованому та неупорядкованому масивах. В неупорядкованому масиві пошук можна здійснити лише за допомогою перегляду всього масиву. Такий пошук називається лінійним. Якщо значення елементів в масиві повторюються, то шляхом лінійного пошуку можна знайти лише перший з таких елементів, перервавши подальший пошук, або знайти усі потрібні значення, переглянувши весь масив.

18.Лінійний пошук елементів в масиві

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

19.Двійковий пошук елементів в масиві

Двійкóвий пóшук — алгоритм знаходження заданого значення у впорядкованому масиві, який полягає у порівнянні серединного елемента масиву з шуканим значенням, і повторенням алгоритму для тієї або іншої половини (див. двійкове дерево пошуку), залежно від результату порівняння.

Трудомісткість алгоритму  , де n — кількість елементів у масиві.

20.Метод встрілювання для пошуку елементів в масиві

21.Метод ‘’золотого перерізу’’ для пошуку елементів в масиві

22.Методи пошуку слова в тексті

23.Пошук слова в суцільному тексті

24.Алгоритм Кнута, Моріса і Пратта

25.Алгоритм Боуера і Мура

26.Пошук заданого рядка у масиві рядків

Такий пошук, часто називається пошуком у таблиці.Для порівняння рядків x,y:String, будемо використовувати такий алгоритм( при цьому вважатиметься, що довжина рядків регулюється за другим варіантом – останій байт = 0.)

i:=0;

while (x[i]=y[i]) and (x[i]<>char(0)) do inc(i);

По закінченню цього циклу або x[i]=y[i], тоді рядки однакові, абоx[i]<>y[i], тоді вони не рівні.

Зустрічається коли пошук іде по ключу, відшукати у файлі запис, відповідне поле якого, наприклад прізвище, спрівпадає з заданим. В такому випадку необхідно , щоб співпадали значення всіх полів, тобто всіх рядків.

Повний алгоритм залежить від способу розташування інформації в таблиці. Якщо рядки відсортовані за алфавітом, то можна скористатися двійковим пошуком і здійснити відповідне порівняння рядків:

Var

a:array [0..N-1] of string;

x:string;

L:=0;

R:=N;

Found:=False;

While L<R do begin

M:=(L+R)div 2; {тут починається порівняння a[m] та x}

i:=0;

while(x[i]=a[m,i]) and x[i]<> char (0)do;

inc(i);

if x[i]=a[m,i] then begin [found!}

L:=m;

R:=m;

found:=True;

end;

else

if x[i]<a [m,i]then L:=m

else R:=m;

end;

if found then {YSPIX!}…;

27.Сортування масивів

Однією з найбільш поширених операцій обробки масивів є їх упорядкування, або сортування. Упорядкування масиву — це зміна порядку розташування його елементів за певним критерієм. Наприклад, числовий масив можна упорядкувати за зростанням значень його елементів або за їх спаданням, а масив рядків можна відсортувати в алфавітному порядку. Найчастіше сортування масиву здійснюється з метою полегшення подальшого пошуку.

Відомо багато методів сортування масиву, що відрізняються швидкодією й обсягом оперативної пам'яті, яка при цьому використовується. Серед цих методів можна вирізнити методи внутрішнього та зовнішнього сортування. Методи внутрішнього сортування не передбачають використання допоміжних масивів. Ці методи застосовують до масивів, що повністю розташовані в оперативній пам'яті. Методи зовнішнього сортування застосовують до великих масивів даних, які зберігаються на зовнішніх носіях. У цьому розділі розглянемо методи внутрішнього сортування масиву, обмежуючись задачею сортування за зростанням. Методи внутрішнього сортування прийнято поділяти на дві групи: елементарні (прямі) та удосконалені методи.

Найбільш відомими елементарними методами сортування масиву є:

  • сортування вставкою (включенням);

  • сортування вибором;

  • сортування обміном (бульбашкове сортування).

З удосконалених методів сортування найчастіше використовуються такі:

  • швидке сортування, або метод Хоара;

  • сортування включенням зі спадним приростом, або метод Шелла;

  • сортування за допомогою дерева, або пірамідальне сортування;

  • сортування методом злиття.

28.Прості методи сортування

Найбільш відомими елементарними методами сортування масиву є:

  • сортування вставкою (включенням);

  • сортування вибором;

  • сортування обміном (бульбашкове сортування).

29.Метод простого включення

Сортування методом вставки

На кожному кроці цього методу масив розділений на дві частини: ліву, вже відсортовану, та праву, ще не відсортовану. Перший елемент правої частини вставляється до лівої частини так, щоб ліва частина залишалася відсортованою. У результаті відсортована частина збільшується на один елемент, а невідсортована - на один елемент зменшується. Отже, на кожному кроці алгоритму сортування методом вставки слід виконати дві операції: пошук позиції для вставки елемента та власне його вставку із подальшим зсувом на одну позицію вправо від елементів відсортованої частини. Цей зсув «затре» перший елемент невідсортованого під-масиву останнім елементом відсортованого. Спочатку відсортованим підмасивом вважаємо перший елемент, а решту елементів масиву відносимо до невідсорто-ваної частини.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]