Архиватор на Go | Урок #8: Алгоритм Шеннона-Фано - реализация

  Рет қаралды 1,815

Николай Тузов — Golang

Николай Тузов — Golang

Күн бұрын

В этом видео мы реализуем алгоритм Шеннона-Фано и напишем тесты для этого кода.
Весь исходный код из уроков можно найти здесь: github.com/JustSkiv/archiver Коммиты в данный репозиторий повторяют структуру уроков.
👾 Мои проекты:
- Golang Digest: t.me/golang_digest - регулярные подборки интересных материалов по Go.
- Личный Telegram-канал: t.me/ntuzov
- Подкаст по Go: tuzov.link/gogetpodcast1 - в первом выпуске мы подробно обсуждаем дженерики.
Тайм-коды:
00:00 Вступление
00:12 Подготовка пакетов table и shannon_fano
02:40 Интерфейс Generator
03:24 Пишем пакет shannon_fano
04:03 Статистика использования символов
05:09 Функция build()
08:24 Сортировка кодируемых символов
10:35 Функция assignCodes()
11:44 Функция bestDividerPosition(): разбиение списка символов по сумме частот
16:48 Пишем тест для функции bestDividerPosition() и обсуждаем как она работает
23:34 assignCodes(): добавляем новый символ в последовательность кодирования
27:36 assignCodes(): завершение
28:14 assignCodes(): пишем тест и разбираемся в работе
33:04 build(): завршение
33:51 build(): пишем тест и разбираемся в работе
37:22 Метод Export()
39:57 NewTable(): завершение
40:11 Заключение и домашнее задание
#golang #algorithms

Пікірлер: 10
@nikolay_tuzov
@nikolay_tuzov 2 жыл бұрын
❤️ Если у вас есть желание поддержать развитие канала: www.patreon.com/tuzov boosty.to/nikolay.tuzov
@user-lg6sr7ez4o
@user-lg6sr7ez4o 2 жыл бұрын
Комментарий для продвижение канала
@sattelliteru
@sattelliteru 2 жыл бұрын
Очень интересные видео. Спасибо!
@user-bg6dl8sn9b
@user-bg6dl8sn9b 2 жыл бұрын
выпусти пожалуйста видео про хеширование, про его виды и реализации например Стрибог, думаю всем будет интересно
@nikolay_tuzov
@nikolay_tuzov 2 жыл бұрын
Про хэш-таблицы у меня уже есть видео. Если интересует именно процесс хэширования более подробно, то окей, я подумаю над этим. Спасибо за предложение.
@user-bg6dl8sn9b
@user-bg6dl8sn9b 2 жыл бұрын
Само хеширование достаточно простое для понимая. Я имел ввиду про алгоритмы отечественные хеширования как они строятся и тд
@user-ss5js8pe3w
@user-ss5js8pe3w Жыл бұрын
Спасибо за урок) Нравится твоё последовательное изложение. Узнал много чего нового для себя в плане написания более качественного и расширяемого кода. Буду стараться теперь больше думать в этом направлении)) Как раз сейчас изучаю Go, и твои уроки прям очень хорошо зашли. Есть маленькая опечатка в функции bestDividerPosition(...): вместо left += codes[0].Quantity видимо должно быть left += codes[i].Quantity. Иначе, мы всё время первый элемент суммируем слева. И при почти одинаковых двух первых значения в тестовых codes это никак не сказывается. Но вот такой тест уже не проходит: codes: []code{ {Quantity: 4}, {Quantity: 2}, {Quantity: 1}, {Quantity: 1}, {Quantity: 1}, {Quantity: 1}, {Quantity: 1}, }, want: 2 Т.к. он разобьётся по первому элементу, хотя должен бы по второму)
@nikolay_tuzov
@nikolay_tuzov Жыл бұрын
Спасибо) А напомни таймкод, я гляну. Уже плохо помню
@user-ss5js8pe3w
@user-ss5js8pe3w Жыл бұрын
@@nikolay_tuzov Вот здесь - 16:40.
Хэш-таблицы за 10 минут
13:01
Николай Тузов — Golang
Рет қаралды 121 М.
Китайка и Пчелка 10 серия😂😆
00:19
KITAYKA
Рет қаралды 1,9 МЛН
1❤️#thankyou #shorts
00:21
あみか部
Рет қаралды 70 МЛН
Backstage 🤫 tutorial #elsarca #tiktok
00:13
Elsa Arca
Рет қаралды 34 МЛН
Balloon Stepping Challenge: Barry Policeman Vs  Herobrine and His Friends
00:28
ПК за 40к для игр и работы в 2024 | Arc A580 - новый топ
18:02
py035 Сжатие по Хаффману
20:39
abglazov
Рет қаралды 2,8 М.
Can ChatGPT change Local Admin Password and push to ITGlue?
6:45
TechIDManager by Ruffian Software
Рет қаралды 322
Как в 44 года стать программистом на Python. Объясняю с чего начать.
19:32
Китайка и Пчелка 10 серия😂😆
00:19
KITAYKA
Рет қаралды 1,9 МЛН