- Более детальный анализ алгоритма вычисления чисел Фибоначчи
- Определения O(⋅), преимущества и недостатки их использования для оценки времени работы алгоритмов
- Определения Ω(⋅),Θ(⋅),o(⋅), общие правила сравнения скорости роста стандартных функций
- Графики нескольких часто используемых функций
- Скорости часто используемых функций на практике, заключение
1. Записи
2. Массивы.
3. Адресация в многомерных массивах: C-style, FORTRAN-style.
4. Данные как «белый ящик» и как «черный ящик».
5. Стеки, очереди и их применение в различных задачах.
6. Реализация стека с помощью массива в С.
7. Связные списки: структура и свойства.
8. Операции над списками.
9. Реализация стека с помощью связного списка в С.
10. Двусвязные списки, кольцевые списки, двусвязные кольцевые списки.
- Более детальный анализ алгоритма вычисления чисел Фибоначчи
- Определения O(⋅), преимущества и недостатки их использования для оценки времени работы алгоритмов
- Определения Ω(⋅),Θ(⋅),o(⋅), общие правила сравнения скорости роста стандартных функций
- Графики нескольких часто используемых функций
- Скорости часто используемых функций на практике, заключение
1. Записи
2. Массивы.
3. Адресация в многомерных массивах: C-style, FORTRAN-style.
4. Данные как «белый ящик» и как «черный ящик».
5. Стеки, очереди и их применение в различных задачах.
6. Реализация стека с помощью массива в С.
7. Связные списки: структура и свойства.
8. Операции над списками.
9. Реализация стека с помощью связного списка в С.
10. Двусвязные списки, кольцевые списки, двусвязные кольцевые списки.
Лекция №2 "Задача кластеризации и ЕМ-алгоритм"Technosphere1
Техносфера Mail.ru Group, МГУ им. М.В. Ломоносова. Курс "Алгоритмы интеллектуальной обработки больших объемов данных", Лекция №2 "Задача кластеризации и ЕМ-алгоритм"
Лектор - Николай Анохин
Постановка задачи кластеризации. Функции расстояния. Критерии качества кластеризации. EM-алгоритм. K-means и модификации.
Видео лекции курса https://www.youtube.com/playlist?list=PLrCZzMib1e9pyyrqknouMZbIPf4l3CwUP
Лекция №2. Абстрактные типы данных. ООП. Предмет "Структуры и алгоритмы обраб...
Лекция №11. Работа с внешней памятью (файлами). Предмет "Структуры и алгоритмы обработки данных"
1. Хакасский государственный университет им. Н.Ф. Катанова
Структуры и алгоритмы обработки данных
Лекция: Работа с внешней памятью
(файлами).
Николай Гребенщиков, www.grebenshikov.ru
2. Модель внешних вычислений
• Внешняя память разделяется на блоки - страницы.
• Время доступа к внешней памяти. ОЗУ на 5 порядков
быстрее.
• Буфер в основной памяти.
1
3. Обработка файлов
• Внешняя сортировка
• Хранение данных ориентированное на поиск
2
4. Сортировка слиянием
Идея: организовать файл в виде постепенно унивеличиваю-
щихся серий.
Серия - r1, . . . , rk , где ri ≤ ri+1, 1 ≤ i ≤ k
Файл r1, . . . , rm делится на серии длинной k, если для i ≥ 0,
таких что k · i ≤ m ⇒ rk(i−1)+1, rk(i−1)+2, . . . , rk·i является
серией
3
7. merge(F 1, F 2, G1, G2, k)
1 outswitch ← true £ первая серия идет в G1
2 while not eof(F 1) or not eof(F 2)
3 do used[1] ← 0; used[2] ← 0; f in[1] ← f alse; f in[2] ← f alse;
4 cur[1] ← get(1, f 1, f 2); cur[2] ← get(2, f 1, f 2);
5 while not f in[1] or not f in[2]
6 do if f in[1]
7 then winner ← 2
8 else if f in[2]
9 then winner ← 1
10 else if cur[1].key < cur[2].key
11 else winner ← 2
12 if outswitch
13 then write(g1, cur[winner])
14 else write(g2, cur[winner])
6
15 cur[winner] = getRecord(winner)
16 outswitch = not outswitch
8. merge-sort(F, N )
1 k ← 1; switch ← 0
2 while k < 2 · N
3 do if switch = 0
4 then F 1 ← F [0, 0]; F 2 ← F [0, 1];
5 G1 ← F [1, 0]; G2 ← F [1, 1];
6 else F 1 ← F [1, 0]; F 2 ← F [1, 1];
7 G1 ← F [0, 0]; G2 ← F [0, 1];
8 merge(F 1, F 2, G1, G2, k)
9 k ←k·2
7
10. На семинар
• Многоканальное слияние
• Многофазное слияние
• Использование буферов при слиянии. Схемы с 6-ю и с
4-мя буферами.
9
11. Хранение данных
• Простой файл
• Хэшированный файл
• Индексированный файл:
– разреженный индекс для отсортированного файла
– плотный индекс для неотсортированного файла
– вторичный индекс
– деревья поиска
10
12. B-дерево - сбалансироанное дерево поиска, созданное спе-
циально для эффективной работы с вторичной памятью с
непосредственный доступом (например, дисковой памятью).
При анализе будем рассматривать:
• количество обращений к диску
• время вычислений
11
14. B-дерево T есть дерево с корнем root[T ], обладающее сле-
дующими свойствами:
• Каждый узел x содержит поля: n[x] - количество ключей
в узле в настойщий момент; key1[x] ≤ . . . ≤ keyn[x][x] ; ло-
гическое значение leaf [x] равное true, если x - лист.
• c1[x], c2[x], . . . , cn[x]+1[x] указатели на дочерние узлы.
• все листья расположены на одной глубине h.
• t ≥ 2 - минимальная степень B-дерева. Для всех внутрен-
них узлов кроме корневого n[x] ≥ t − 1. Для всех внутрен-
них узлов n[x] ≤ 2t − 1
13
15. Высота B-дерева T с n ≥ 1 узлами и минимальной стпенью
t ≥ 2 не превышает logt(n + 1)/2.
h
th − 1
n ≥ 1 + (t − 1) 2ti−1 = 1 + 2(t − 1) = 2th − 1 ⇒
i=1 t−1
th ≥ (n + 1)/2 ⇒
h ≥ logt(n + 1)/2
14
16. Поиск по B-дереву
B Tree Search(x, k)
1 i←1
2 while i ≤ n[x] и k > keyi[x]
3 do i ← i + 1
4 if i ≤ n[x] и k = keyi[x]
5 then return(x, i)
6 if leaf [x]
7 then returnN IL
8 else Disk Read(ci[x])
9 return B Tree Search(ci[x], k)
15
17. Анализ времени поиска
Количество обращений к диску равно O(h) = O(logtn)
Время обработки: n[x] < 2t ⇒ T (n) = O(th) = O(t · logtn)
16
18. Создание пустого B-дерева
B Tree Create(T )
1 x ← Allocate Node()
2 leaf [x] ← true
3 n[x] ← 0
4 Disk Write(x)
5 root[T ] ← x
OPdisk = O(1) и T (n) = O(1)
17
25. Анализ вставки в B-дерево
Разбиение: OPdisk = O(1) и T (n) = O(t)
Вставка: OPdisk = O(h) = O(logtn) и T (n) = O(th) = O(t · logtn)
24
26. На семинар
• Удаление из B-дерева.
• B+ деревья.
• Применение B-деревьев в файловых системах.
25
27. Список литературы
• Ахо А., Хопкрофт Д., Ульман Д. Структуры данных и
алгоритмы. - М. : Издательский дом “Вильямс”, 2000.
сс.311-338.
• Кормен Т., Лейзерсон Ч., Ривест Р., Штайн К. Алгорит-
мы: построение и анализ, 2-е издание. - М. : Издатель-
ский дом “Вильямс”, 2007. сс.515-536.
• http://en.wikipedia.org/wiki/B-tree
• http://en.wikipedia.org/wiki/B%2B tree
26