36. Алгоритмы сжатия информации
Имеется файл с данными. Данные представляют собой последовательность символов .Нужно закодировать символы таким образом, чтобы
1) размер файла уменьшился;
2) исходный файл можно было бы восстановить из сжатого
Каждый символ кодируется последовательностью битов (например, ASCII-кодом, в котором каждый символ кодируется 8 битами)
Идея: кодировать символы таким образом, чтобы выполнялось следующее:
чем чаще встречается символ, тем короче его код .
Алгоритм Хаффмана
Пусть имеется файл с размером 100 байт,
состоящий из символов A,B,C,D,E,F.
1)Посчитаем число вхождений каждого символа
A | B | C | D | E | F |
10 | 20 | 30 | 5 | 25 | 10 |
2) Отсортируем символы по частоте их вхождений
C | E | B | F | A | D |
30 | 25 | 20 | 10 | 10 | 5 |
C | E | B | F | A | D |
00 | 10 | 11 | 010 | 0110 | 0111 |
Нужно еще хранить и дерево кодирования!
В дереве 11 вершин, каждая должна содержать указатели на своего правого и левого сына. Каждый указатель – например 4 байта.
Итого получаем 4*11 = 44 байта
100 байт | 74 байт |
| было | Стало |
C | 30*8=240 | 30*2=60 |
E | 25*8=240 | 25*2=50 |
B | 20*8=160 | 20*2=40 |
F | 10*8=80 | 10*3=30 |
A | 10*8=80 | 10*4=40 |
D | 5*8=40 | 5*4=20 |
| 800бит=100байт | 240бит=30байт |
- 1.Трудоемкость алгоритмов
- 2.Алгоритмы сортировки
- 3.Сортировка слиянием
- 4.Бинарные поисковые деревья
- 5.2-3-4 Деревья
- 6.Хеширование
- 7. Поиск подстроки. Алгоритм Кнута-Морриса- Пратта.
- 8. Графы. Структуры данных для представления графов
- 9. Алгоритм нахождения Эйлерова цикла
- 10 .Поиск в ширину(волновой алгоритм)
- 11.Поиск в глубину
- 12.Жадные алгоритмы и матроиды
- 13.Задача об остовном дереве. Алгоритмы Прима и Краскала, их реализация
- 14. Алгоритм Дийкстры
- 15. Алгоритм Флойда
- 16. Паросочетания в двудольных графах
- 17. Потоки и разрезы в сетях. Алгоритм Форда-Фалкерсона
- 18. Задача о рюкзаке
- 21. Классы p и np. Полиномиальное сведение.
- 22. Np- полные задачи. Теорема Кука-Карпа-Левина. Np-полнота задачи о клике
- 23. Алгоритмы с гарантированной оценкой точности. Задача упаковки
- 24.Метод локального поиска и поиска с запретами. Задача о максимальном разрезе.
- 25.Метод ветвей и границ. Задача коммивояжера.
- 26. Задача коммивояжера с неравенством треугольника. Алгоритм Кристофидеса
- 27.Задача о независимом множестве, точные и эвристические алгоритмы ее решения
- 28.Задача о раскраске графа, точные и эвристические алгоритмы ее решения.
- 31.Задача о раскраске хордальных графов
- 32.Генетические алгоритмы
- 33. Page Rank
- 34 Криптосистема с открытым ключом. Криптосистема rsa
- 35.Задача разделения секрета.
- 36. Алгоритмы сжатия информации