Разделы презентаций


Тема 8. Алгоритмы и структуры данных. Поиск

Содержание

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.2Шевченко А. В.Алгоритмы поискаПоиск в массивахПоискПоиск в строкахПоиск в файлахА. С. Пушкин"ЕВГЕНИЙ ОНЕГИН"ГЛАВА ПЕРВАЯ«Мой дядя самых честных правил, Когда не в шутку

Слайды и текст этой презентации

Слайд 1Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
1
Тема

8. Алгоритмы и структуры данных. Поиск.
Шевченко А. В.

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.1Тема 8. Алгоритмы и структуры данных. Поиск.Шевченко А.

Слайд 2Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
2
Шевченко

А. В.
Алгоритмы поиска
Поиск в массивах
Поиск
Поиск в строках
Поиск в файлах
А. С.

Пушкин
"ЕВГЕНИЙ ОНЕГИН"
ГЛАВА ПЕРВАЯ
«Мой дядя самых честных правил, Когда не в шутку занемог, Он уважать себя заставил И лучше выдумать не мог. Его пример другим наука; Но, боже мой, какая скука С больным сидеть и день и ночь, Не отходя ни шагу прочь! Какое низкое коварство Полуживого забавлять, Ему подушки поправлять, Печально подносить лекарство, Вздыхать и думать про себя: Когда же черт возьмет тебя!»
Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.2Шевченко А. В.Алгоритмы поискаПоиск в массивахПоискПоиск в строкахПоиск

Слайд 3Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
3
Шевченко

А. В.
Поиск в массивах
Поиск в массивах
Линейный поиск
Двоичный поиск
Интерполяци-онный поиск
Код
Наименование

Цена

44
Яблоки
35.50

55
Апельсины
29.90

12
Бананы
22.00

...
...
...

Ключ
Уникальный
Неуникальный
Поиск -

получение записи по значенияю ключа

Цена товара
с кодом 55?

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.3Шевченко А. В.Поиск в массивахПоиск в массивахЛинейный поискДвоичный

Слайд 4Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
4
Шевченко

А. В.
Линейный поиск в массиве
18
Эффективность n/2
Линейный поиск - единственно возможный

способ поиска в неупорядоченном массиве

01

99

44

55

12

42

94

18

06

67

98

03

95

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.4Шевченко А. В.Линейный поиск в массиве18Эффективность n/2Линейный поиск

Слайд 5Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
5
Шевченко

А. В.
Пример линейного поиска в массиве
int LinearSearch(PROD* p, int n,

short Val)
{
for(int i = 0; i < n; i++)
if(p[i].code == Val)
return(i);

return(-1);
}
Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.5Шевченко А. В.Пример линейного поиска в массивеint LinearSearch(PROD*

Слайд 6Как поймать льва в пустыне?
Программирование и основы алгоритмизации
Тема 08. Алгоритмы

и структуры данных. Поиск.
6
Шевченко А. В.
Двоичный поиск в массиве

Как поймать льва в пустыне?Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.6Шевченко А. В.Двоичный поиск

Слайд 7Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
7
Шевченко

А. В.
Двоичный поиск в массиве
18
Эффективность log2n
01
03
06
12
18
42
44
55
67
94
95
98
99
44
06
18

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.7Шевченко А. В.Двоичный поиск в массиве18Эффективность log2n01030612184244556794959899440618

Слайд 8Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
8
Шевченко

А. В.
Пример двоичного поиска в массиве
int BinarySearch(PROD* p, int n,

short Val)
{
int L = 0;
int R = n-1;

while(L <= R)
{
int m = (L+R)/2;

if(p[m].code < Val)
L = m+1;
else
if(p[m].code > Val)
R = m-1;
else
return(m);
}

return(-1);
}
Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.8Шевченко А. В.Пример двоичного поиска в массивеint BinarySearch(PROD*

Слайд 9Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
9
Шевченко

А. В.
Интерполяционный поиск в массиве
18
Эффективность log2n
01
03
06
12
18
42
44
55
67
94
95
98
99
06
12
int ind = L+((V-a[L])*(R-L))/(a[R]-a[L]);

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.9Шевченко А. В.Интерполяционный поиск в массиве18Эффективность log2n010306121842445567949598990612int ind

Слайд 10Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
10
Шевченко

А. В.
Пример интерполяционного поиска в массиве
int InterpolationSearch(PROD* p, int n,

short Val)
{
int L = 0;
int R = n-1;

while(L <= R)
{
int m = L+((Val-p[L].code)*(R-L))/(p[R].code-p[L].code);

if(p[m].code < Val)
L = m+1;
else
if(p[m].code > Val)
R = m-1;
else
return(m);
}

return(-1);
}

m = 0+((18-1)*(12-0))/(99-1) = 2

L = 3

m = 3+((18-12)*(12-3))/(99-12) = 3

L = 4

m = 4+((18-18)*(12-4))/(99-18) = 4

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.10Шевченко А. В.Пример интерполяционного поиска в массивеint InterpolationSearch(PROD*

Слайд 11Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
11
Шевченко

А. В.
Поиск в строках
А. С. Пушкин
"ЕВГЕНИЙ ОНЕГИН"
ГЛАВА ПЕРВАЯ
«Мой дядя самых

честных правил, Когда не в шутку занемог, Он уважать себя заставил И лучше выдумать не мог. Его пример другим наука; Но, боже мой, какая скука С больным сидеть и день и ночь, Не отходя ни шагу прочь! Какое низкое коварство Полуживого забавлять, Ему подушки поправлять, Печально подносить лекарство, Вздыхать и думать про себя: Когда же черт возьмет тебя!»

наука

Поиск в строках

Прямой поиск

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

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

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.11Шевченко А. В.Поиск в строкахА. С. Пушкин

Слайд 12Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
12
Шевченко

А. В.
Задача поиска в строках
Алфавит
«
М
о
й

д
я
д
я

с
а
м
ы
х

ч
е
с
т
н
ы
х
п
р
...
N
«
А
а
Б
б
В
в
...
»
.
,
!
?
...
Строка (текст) -

неупорядоченный массив символов, принадлежащих к некоторому алфавиту

Код символа = целое число

н

а

у

к

а

M

M < N

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.12Шевченко А. В.Задача поиска в строкахАлфавит«Мой дядя самых

Слайд 13Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
3
Шевченко

А. В.
Прямой поиск в строке
У
Ч
Е
Н
Ы
Й

У
Ч
И
Л

У
Ч
Е
Н
У
Ч
Е
Н
И
К
У
Ч
Е
Н
К
И
Ю

У
Ч
Е
Н
И
К
О
В
У
У
У
У
Ч
У
Ч
Е
Н
И
К

У

У
Ч
Е
Н
И
У

И
Е
К

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.3Шевченко А. В.Прямой поиск в строкеУЧЕНЫЙ УЧИЛ УЧЕНУЧЕНИКУЧЕНКИЮ

Слайд 14Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
14
Шевченко

А. В.
Прямой поиск в строке
char* StringSearch(char* Text, char* Val)
{

for(char* p = Text; *p; p++)
{
bool found = true;

for(char* v = Val, *s = p; *v; v++, s++)
if(!*s || *v != *s)
{
found = false;
break;
}

if(found) return(p);
}

return(NULL);
}
Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.14Шевченко А. В.Прямой поиск в строкеchar* StringSearch(char* Text,

Слайд 15Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
15
Шевченко

А. В.
Алгоритм Кнута, Морриса и Пратта
У
Ч
Е
Н
Ы
Й

У
Ч
И
Л

У
Ч
Е
Н
У
Ч
Е
Н
И
К
У
Ч
Е
Н
К
И
Ю

У
Ч
Е
Н
И
К
О
В
У
И
К

Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
Сравнение строк

слева направо и сдвиг на вычисляемое число позиций.
Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.15Шевченко А. В.Алгоритм Кнута, Морриса и ПраттаУЧЕНЫЙ УЧИЛ

Слайд 16Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
16
Шевченко

А. В.
Алгоритм Боуера и Мура
У
Ч
Е
Н
Ы
Й

У
Ч
И
Л

У
Ч
Е
Н
У
Ч
Е
Н
И
К
У
Ч
Е
Н
К
И
Ю

У
Ч
Е
Н
И
К
О
В
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
У
Ч
Е
Н
И
К
Сравнение строк справа

налево и сдвиг на вычисляемое число позиций.
Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.16Шевченко А. В.Алгоритм Боуера и МураУЧЕНЫЙ УЧИЛ УЧЕНУЧЕНИКУЧЕНКИЮ

Слайд 17Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных. Поиск.
17
Шевченко

А. В.
Поиск в файлах базы данных
Файлы базы данных размещаются на

блочных устройствах (чтение и запись производится блоками фиксированной длины). Чтение блока - медленная операция.

Код

Наименование

Цена

44

Яблоки

35.50

55

Апельсины

29.90

12

Бананы

22.00

...

...

...

Цена товара
с кодом 55?

Блок 1

Блок 2

Блок 3

...

Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.17Шевченко А. В.Поиск в файлах базы данныхФайлы базы

Слайд 18да
Блок 1
Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных.

Поиск.
18
Шевченко А. В.
Индексно-последовательный метод доступа (ISAM)
01
Ананасы
89.00
03
Абрикосы
50.00
12
Бананы
22.00
18
Сливы
34.50
Блок 2
44
Яблоки
35.50
55
Апельсины
29.90
56
Груши
65.50
62
Вишня
99.90
Блок 3
64
Черешня
95.00
67
Персики
50.00
68
Манго
67.00
75
Мандарины
39.50
Блок 4
78
Малина
75.00
83
Нектарины
42.00
98
Гранаты
44.00
99
Айва
38.50
>= 64
>=

44

>= 78

да

нет

нет

да

нет

55

Число ступеней индекса = log2n,
где n - число блоков

даБлок 1Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.18Шевченко А. В.Индексно-последовательный метод доступа (ISAM)01Ананасы89.0003Абрикосы50.0012Бананы22.0018Сливы34.50Блок 244Яблоки35.5055Апельсины29.9056Груши65.5062Вишня99.90Блок

Слайд 19Блок 0
Программирование и основы алгоритмизации
Тема 08. Алгоритмы и структуры данных.

Поиск.
19
Шевченко А. В.
Доступ по вычисляемому ключу (HASH)
Блок 1
55
Блок 4
01
Ананасы
Блок 8
18
Сливы
Блок

2

12

Бананы

62

Вишня

Блок 3

03

Абрикосы

83

Нектарины

44

Яблоки

64

Черешня

Блок 5

55

Апельсины

75

Мандарины

Блок 6

56

Груши

Блок 7

67

Персики

68

Манго

78

Малина

98

Гранаты

Блок 9

99

Айва

HASH-функция

MOD(x, 10)

Хэш-функция непосредственно преобразует значение ключа поиска в номер блока.

Блок 0Программирование и основы алгоритмизацииТема 08. Алгоритмы и структуры данных. Поиск.19Шевченко А. В.Доступ по вычисляемому ключу (HASH)Блок

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика