Участник:Shersh/Тикеты ко 2ому терму — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(4. Поисковые структуры данных)
(5. Дерево отрезков)
Строка 138: Строка 138:
  
 
== 5. Дерево отрезков==
 
== 5. Дерево отрезков==
# ''fixed'' [[Статистики на отрезках. Корневая эвристика]] (''1.5'')
+
# [[Статистики на отрезках. Корневая эвристика]]
## Отформатировать псевдокод
+
# [[Дерево отрезков. Построение]]
## Заменить тире на шаблон
 
## Увеличить дроби
 
## Заменить Источники на источники информации
 
## Пример, когда нужна необходимость
 
## Исправить определение
 
## Преимущества sqrt-декомпозиции
 
# ''fixed'' [[Дерево отрезков. Построение]] (''1.5'')
 
## Присвоение элементам ДО одного значения {{---}} не ассоциативная операция, значит, про моноид надо поправить
 
## Пояснить подробней про моноиды (например, что минимум {{---}} это моноид) (''+1 ещё за каждый интересный пример задачи'')
 
## Заменить знаки неравенства
 
## Увеличить дроби
 
## Отформартировать псевдокод
 
## Оформить правильно См. также и ссылки
 
## Перенести про персистентность в конспект про персистентные СД
 
 
# [[Реализация запроса в дереве отрезков сверху]] (''0.5'')
 
# [[Реализация запроса в дереве отрезков сверху]] (''0.5'')
 
## Много пробелов в коде, отформатировать
 
## Много пробелов в коде, отформатировать
Строка 168: Строка 154:
 
## Оформить правильно источники информации
 
## Оформить правильно источники информации
 
## Добавить см. также
 
## Добавить см. также
# ''fixed'' [[Многомерное дерево отрезков]] (''2'')
+
# [[Многомерное дерево отрезков]]  
## Взять задачу в Шаблон:Задача
 
## Константы взять в tex
 
## Отформатировать псевдокод
 
## Многоточие заменить на \ldots
 
## Оформить правильно Источники информации и См. также
 
 
# [[Сжатое многомерное дерево отрезков]] (''1'')
 
# [[Сжатое многомерное дерево отрезков]] (''1'')
 
## Отформатировать псевдокод
 
## Отформатировать псевдокод

Версия 21:45, 24 сентября 2015

Тикеты индексируются как "X-Y", где X — номер раздела, Y — номер конспекта внутри раздела.

0. Амортизационный анализ

  1. Амортизационный анализ (0.5)
    1. Англоязычные термины
    2. Нормальный нумерованный список
  2. !!! Динамический массив (6)
    1. Сравнение со списком
    2. Англоязычные термины
    3. Потенциальный анализ для произвольных A, B, C
  3. !!! Hashed Array Tree (5)
    1. Сравнение с таким способом: храним указатели на массивы константного размера, размеры массивов не меняем, увеличиваем только массив указателей (чтобы не копировать). За сколько будет работать?
    2. Добавить про буферизованный список
    3. Редактирование по мелочи
  4. Список
  5. Стек
  6. Очередь
  7. Мажорирующий элемент (1.5)
    1. Поправить псевдокод
    2. Заменить тире на шаблон, а кое-где — наоборот, на дефис
    3.  != в тексте заменить на \ne
    4. Убрать скобки из диапазона массива
    5. Заменить size в доказательстве про K на ||
    6. Длинные обозначения взять в \mathtt
    7. Заменить источники на источники информации
  8. !!! Счетчик Кнута (5)
    1. Добавить рассуждения про декремент (и вычитание 1 из произвольного разряда)
  9. Мастер-теорема

1. Персистентные структуры данных

2. Приоритетные очереди

0. Приоритетные очереди
  1. Двоичная куча
  2. Биномиальная куча
  3. Фибоначчиева куча
  4. Левосторонняя куча
  5. Тонкая куча
  6. !!! Толстая куча на избыточном счетчике (7)
    1. Англоязычные термины
    2. Расписать подробно операцию "декремент". Можно как-то связать со счётчиком Кнута.
    3. Ссылка в интервики с большой буквы — заменить на маленькую
    4. Отформатировать псевдокод
    5. Всё оформлено в UpperCamelCase, наверное, надо что-то с этим сделать
    6. Названия функций обернуть в \mathrm
    7. Поправить ошибку в Источниках
    8. Все переменные и константы взять в tex
    9. "Основные операции оформить аккуратней
    10. В одном месте лишнее выделение текста псевдокодным прямоугольником, в другом месте комментарий вылез за псевдокод
    11. Заголовки сделать на уровень меньше
    12. Структуру оформить псевдокодом с комментариями
    13. Подпункты с большой буквы назвать
    14. Возможно, надо будет исправить что-то ещё, слишком много трэша
  7. Куча Бродала-Окасаки (4)
    1. Ссылки заменить на источники информации, сделать маркированным списком
    2. Непонятно, почему merge работает за О(1), если он вызывает insert ниже, который вызывает merge
    3. Написать подробней операции
    4. Форматнуть чутка псевдокод
    5. Заменить Смотри также на См. также

3. Система непересекающихся множеств

  1. Наивные реализации (0.5)
    1. Сделать структуру в списке типа Generic
    2. Написать про возможную частую ошибку в реализации массивом
    3. Взять обозначения перед псевдокодом и внутри комментариев в \mathtt
  2. Списки с весовой эвристикой (0.5)
    1. Оформить правильно источники информации
    2. Интервики на амортизационный анализ
    3. Добавить пробелы в Других реализациях перед (
    4. Англоязычные термины правильно оформить
  3. !!! Реализация с помощью леса корневых деревьев (5)
    1. Написать внятное доказательство
  4. !!! СНМ с операцией удаления за О(1) (6)
    1. "Мы работаем в предположении, что очистка списка не подразумевает удаления каждого элемента вручную" - пояснить, почему можем так предполагать
    2. Кое-где не хватает точек в конце предложений
    3. Вообще кажется, что можно проще
    4. Пояснить соображения для второй модификации, начав с того, почему нельзя сделать намного проще: хранить в корне просто список листьев поддерева с этим корнем; во время union объединить два списка; во время get просто добавить все вершины пути к списку листьев корня (а то что-то развели в конспекте текста на дофига). Если внезапно окажется, что можно проще, то переписать всё.
    5. Если проще нельзя, то пояснить про трудности с обычной эвристикой во время get (find)

4. Поисковые структуры данных

0. Поисковые структуры данных
  1. Упорядоченное множество
  2. Дерево поиска, наивная реализация
  3. АВЛ-дерево
  4. [[2-3 дерево]
  5. B-дерево
  6. !!! Красно-черное дерево (5)
    1. Добавить про связь с 2-3 и 2-4 деревом
  7. !!! Декартово дерево (6)
    1. Тире заменить на шаблон
    2. Имена функций оформить в lowerCamelCase
    3. Сделать псевдокод менее похожим на код С++ (без ссылок): пусть split возвращает пару деревьев
    4. Разобраться с приоритетами (см. обсуждение)
    5. Какое-то палево в удалении с k.x - eps
    6. Оформить правильно источники информации
    7. Заменить знаки неравенств
  8. Декартово дерево по неявному ключу
  9. !!! Splay-дерево (8)
    1. Оформить правильно англоязычные термины
    2. Исправить знаки неравенств в tex
    3. Увеличить дроби
    4. Дефисы заменить на шаблон тире
    5. Показать, что лемма верна для любого фиксированного веса узла
    6. Функции оформить в lowerCamelCase
    7. Пример, когда move to root занимает [math]\Omega(n)[/math] времени, и заменить O на омегу
    8. Знаки умножения заменить на \cdot
    9. Заменить многоточия на \ldots
  10. !!! Tango-дерево (8)
    1. Доказательство теоремы Уилбера
    2. А причём тут вообще она?
  11. Рандомизированное бинарное дерево поиска
  12. Дерево ван Эмде Боаса
  13. !!! Список с пропусками (7)
    1. \theta cделать большой буквой
    2. Определение в начале мутное
    3. Оформить правильно англоязычные термины
    4. Для log n уровней неясно: добавить знак умножения надо, и откуда там 2 log n взялось?
    5. Увеличить дроби
    6. Пояснить подробней структуру и разделить операции по псевдокодам, добавить пояснений
    7. Отформатировать псевдокод
    8. log заменить на \log
    9. Расписать связь вероятности монетки с числом уровней; добавить пару слов про различные варианты честности монетки и что от них зависит
    10. Оформить правильно источники информации
    11. Добавить См. также
    12. Написать, почему все так любят скиплист, особенно в вычислительной геометрии
  14. Fusion tree
  15. Сверхбыстрый цифровой бор (2)
    1. Отформатировать псевдокоды
    2. Сказать, почему префиксы в хеше не буду есть много памяти
    3. Добавить См. также
    4. Многоточия заменить на \ldots
  16. Rope

5. Дерево отрезков

  1. Статистики на отрезках. Корневая эвристика
  2. Дерево отрезков. Построение
  3. Реализация запроса в дереве отрезков сверху (0.5)
    1. Много пробелов в коде, отформатировать
    2. Заменить neutral на varepsilon, введя сначала моноид
    3. Добавить построение в См. также
    4. В примере случаи разной глубины красиво оформить
  4. Реализация запроса в дереве отрезков снизу
  5. Несогласованные поддеревья. Реализация массового обновления (3)
    1. Добавить примеры массовых операций в начало
    2. В начале определение очень похоже на определение кольца, то есть возможно ДО работает на кольце. Надо бы это пояснить и кинуть интервики на кольцо (см. замечания в обсуждениях)
    3. Константы взять в tex
    4. Отформатировать псевдокод
    5. Обозначения перед псевдокодов взять в \mathtt или в \mathrm
    6. Оформить правильно источники информации
    7. Добавить см. также
  6. Многомерное дерево отрезков
  7. Сжатое многомерное дерево отрезков (1)
    1. Отформатировать псевдокод
    2. Англоязычные термины
    3. Литературу заменить на Источники информации
    4. Первую картинку заменить на Tex'овскую красивую фигурную скобку
    5. Добавить См. также
    6. Добавить категории

6. Дерево Фенвика

  1. fixed Дерево Фенвика (8)
    1. Англоязычные термины
    2. Тире заменить на шаблон
    3. Исправить багу в доказательстве (см. обсуждения)
    4. Битовые операции окружить пробелами
    5. Знаки неравенств заменить на \leqslant и \geqslant
    6. Расписать эквивалентность формул с числом единиц и побитовые операции
    7. Заменить i = \overline{0, n - 1} на i = 0 .. n - 1
    8. Добавить описание побитовых операций в самое начало, чтобы не использовать их перед их определением
    9. Отформатировать псевдокод
    10. Оформить красиво ссылки
    11. Добавить категории
    12. Имена функций взять в \mathrm
    13. Добавить преимущества и недостатки дерева Фенвика
    14. Сделать красивые таблички
  2. fixed Встречное дерево Фенвика (3)
    1. Англоязычные термины
    2. Добавить категории
    3. Добавить ссылок
    4. Добавить См. также
    5. Оформить правильно источники информации
    6. "отрезок длины 1..2^n" — странное обозначение длины
    7. Умножение матриц не является коммутативной операцией, добавить другой пример
    8. Свойства и картинки нормально оформить
  3. fixed Дерево Фенвика для некоммутативных операций (0.5)
    1. Добавить категории
    2. Доказательство оформить в виде шаблона теоремы или заменить на "Корректность"
    3. Скобки вокруг n в log(n) можно убрать
    4. Добавить См. также, Источники информации по возможности
  4. взяли Многомерное дерево Фенвика (7)
    1. Тире заменить на шаблон
    2. Отформатировать псевдокод
    3. Разместить картинку так, чтобы не залезала на псевдокод
    4. Имена функций обернуть в \mathrm
    5. Псевдокод сделать отдельным подпунктом
    6. Оформить красиво ссылки
    7. Добавить категории
    8. Добавить См. также
    9. Перерисовать картинку (см. обсуждения)
    10. Англоязычные термины

7. Хеширование

  1. fixed Хеш-таблица (3)
    1. Смотрите обсуждения
    2. Англоязычные термины
    3. Сказать, какой интерфейс реализует (ассоциативный массив) и провести аналогию с деревьями поиска
    4. Какие классы в современных языках реализуют хеширование
    5. Константы взять в tex
    6. Понятия в тексте взять в шаблон определения
    7. Многоточия в tex заменить на \dots
    8. Оформить правильно Источники информации
  2. fixed Разрешение коллизий (4)
    1. Определение убрать, оно уже есть в другом конспекте, на него просто интервики надо сделать
    2. Добавить про способ борьбы с коллизиями в Java 8 (+2 в карму за картинку такого способа)
    3. Отформатировать псевдокод
    4. Разрешение коллизий из предыдущего конспекта перенести в этот, а в том сделать интервики на данный конспект
    5. Имена функций взять в \mathrm
    6. \mod заменить на \bmod
    7. Англоязычные термины
    8. Оформить правильно Источники информации
  3. Хеширование кукушки (2)
    1. Англоязычные термины
    2. Взять в tex знаки = и константы
    3. Добавить интервики
    4. Оформить правильно источники информации
    5. А что делать в случае зацикливания?
    6. Плюсы-минусы метода
  4. fixed Идеальное хеширование (0.5)
    1. Англоязычные термины
    2. Задачу взять в Шаблон
    3. Заменить тире на шаблон
    4. Ссылку на неравенство Маркова оформить как интервики на соответствующий конспект
    5. Оформить правильно Источники информации
  5. Перехеширование. Амортизационный анализ (1)
    1. Пояснить, почему будет O(1) на добавление при перехешировании
  6. Фильтр Блума (0.3)
    1. Оформить правильно Источники информации
    2. Англоязычные термины
    3. Константы, AND, OR в Tex
  7. Универсальное семейство хеш-функций (0.5)
    1. Добавить ссылок
    2. Англоязычные термины
    3. Смотри обсуждения
    4. Заменить многоточия на \dots
    5. Заменить \mod на \bmod
    6. Заменить знаки неравенств
    7. Добавить "информации" в источники

8. Сортировка

0. fixed Сортировка (1)
  1. Англоязычные термины
  2. Сказать ещё про мнопоточные алгоритмы
  3. Оформить правильно Источники информации
  4. Добавить недостающие сортировки с конспектов

Квадратичные сортировки

  1. взяли Сортировка выбором (0.5)
    1. Ссылку через интервики
    2. Оформить правильно англоязычные термины
    3. Отформатировать псевдокоды
    4. Сказать, в чём разница между двумя вариантами и оформить сами варианты красивей
    5. Оформить правильно источники информации
    6. Добавить См. также
    7. Добавить категорию
  2. Сортировка пузырьком (2)
    1. Сделать единообразные псевдокоды с равным количеством отступов
    2. Пояснить преимущества каждой модификации сортировки
    3. Подробней расписать comb sort, и почему там n log n?
    4. Увеличить дроби
    5. Добавить категорию
  3. fixed Сортировка вставками (0.5)
    1. Англоязычные термины
    2. Убрать жирное выделение BinSearch в модификации вставками и написать с маленькой буквы
    3. Оформить правильно Источники информации
    4. Добавить категорию

Сортировки на сравнениях

  1. Сортировка Шелла (0.3)
    1. Заменить дефисы на тире
    2. Заменить многоточия на \ldots
    3. Написать правильно ln
    4. Пофиксить категории
    5. Оформить правильно Источники информации и См. также
  2. fixed Сортировка кучей (5)
    1. Оформить правильно англоязычные термины
    2. Обернуть имена функций в \mathrm
    3. Отформатировать псевдокоды
    4. Добавить См. также
    5. Оформить правильно Источники информации
    6. Добавить категорию
    7. Объяснить, почему модификация JSort даёт вообще какой-то выигрыш, добавить картинки JSort
  3. Быстрая сортировка (1.5)
    1. Англоязычные термины
    2. Описание алгоритма сделать покрасивей
    3. Заменить многоточия на \ldots
    4. Увеличить дроби
    5. Пояснить про разбиение массива на три части и чем это помогает
    6. Добавить ещё модификаций
    7. Добавить См. также
    8. Добавить категорию
  4. fixed Сортировка слиянием (4)
    1. Анимированную работу алгоритма сделать ссылкой-примечанием
    2. Можно убрать скобки в логарифме
    3. Отформатировать псевдокод
    4. Картинка залезает на псевдокод
    5. А лучше вообще перерисовать картинку слияния, создать красивую, а то существующая убогая
    6. Полуинтервалы в тексте взять в tex
    7. Добавить См. также
    8. Добавить псевдокод итеративной сортировки слиянием
    9. Оформить правильно Источники информации
    10. Добавить категорию
    11. Многоточия заменить на \dots
  5. Cортировка слиянием с использованием O(1) дополнительной памяти (0.5)
    1. Оформить правильно Источники информации
    2. Добавить категорию
    3. Написать в начале, зачем оно надо и насколько эффективно в реальной жизни
  6. Терпеливая сортировка (0.2)
    1. Имена массивов взять в \mathtt
    2. Отформатировать псевдокоды
    3. Добавить категорию
  7. fixed Timsort (4)
    1. Последнюю картинку можно сделать более красочной, поэтому надо её перерисовать
    2. Отформатировать псевдокоды
    3. Заменить знаки неравенств
    4. Обозначения переменных в тексте взять в \mathtt
    5. and заменить на знак конъюнкции
    6. min заменить на \min
    7. Заменить Источники на источники информации
    8. Добавить категорию
    9. Многоточия заменить на \dots
    10. Рассмотреть баг, недавно обнаруженный в реализациях Java, Android, etc
  8. взяли Теорема о нижней оценке для сортировки сравнениями (1)
    1. Заменить знаки неравенств
    2. Добавить "информации" в источники
    3. Добавить пару следствий из теоремы
    4. Добавить категорию

Многопоточные сортировки

  1. fixed Многопоточная сортировка слиянием (0.5)
    1. Комментарии в зелёный
    2. Пофиксить категории
    3. Добавить См. также
    4. Заменить дефисы на тире
  2. PSRS-сортировка

Другие сортировки

  1. Поиск k-ой порядковой статистики (1.5)
    1. Англоязычные термины
    2. Переменные в Tex
    3. Отформатировать псевдокод
    4. Заменить знаки неравенств
    5. Увеличить дроби
    6. Оформить правильно Источники информации
    7. Добавить категории, См. также
    8. Добавить про модификацию partition с разбиением на 3 части
  2. fixed Поиск k-ой порядковой статистики за линейное время (0.5)
    1. Дублируется определение
    2. Убрать пункт "Историческая справка"
    3. Увеличить дроби
    4. Заменить знаки неравенств
    5. Оформить правильно источники информации
    6. Добавить категорию
  3. взяли Сортировка подсчетом (1)
    1. Англоязычные термины
    2. Отформартировать псевдокод
    3. Добавить, что хоть алгоритм и работает за линейное время, но является псевдополиномиальным
    4. (+2 за более сочные картинки)
    5. Добавить "информации" в Источники
    6. Добавить категорию
  4. Цифровая сортировка
  5. fixed Карманная сортировка (0.5)
    1. Оформить правильно англ. термины
    2. Отформатировать псевдокод
    3. Тету сделать большой
    4. Оформить правильно источники информации
    5. Добавить См. также
    6. Добавить категорию
    7. Принцип работы красиво оформить
    8. Картинка залезает на код
  6. fixed Сортировка Хана (7)
    1. Дефисы заменить на тире
    2. Оформить правильно англоязычные термины
    3. Определения — жирным
    4. Возможно про ЭП-дерево стоит отдельный конспект написать, обсудить с куратором при желании взяться за это
    5. Увеличить дроби
    6. Добавить картинок
    7. == в тексте не используется
    8. "Algorithm Sort(k \log\log n, level, a_{0}, a_{1}, \ldots, a_{t})" — непонятные обозначения, пояснить, что всё это значит, и оформить красиво
    9. Все константы и переменные взять в Tex
    10. Добавить категорию

9. Сортирующие сети

  1. fixed Сортирующие сети (0.3)
    1. Оформить правильно англоязычные термины
    2. Заменить min и max на \min и \max
    3. Добавить "информации" в источники
  2. fixed Проверка сети компараторов на то, что она сортирующая. 0-1 принцип (0.5)
    1. "Обычно можно оценить" - немного странно здесь выглядит обычно
    2. Заменить знаки неравенств
    3. Англоязычные термины
    4. Написать, что определение обозначения [i:j] для компаратора
    5. Оформить правильно Источники информации
    6. Добавить См. также
  3. fixed Сортирующие сети для квадратичных сортировок (5)
    1. Добавить доказательства размеров слоёв в сетях
    2. Оформить правильно Источники информации
    3. Добавить См. также на особые свойства
  4. fixed Сортировочные сети с особыми свойствами (0.2)
    1. Переименовать конспект в "Сортирующие сети..."
    2. Оформить правильно англ. термины
    3. Оформить правильно источники информации
  5. Сеть Бетчера (0.5)
    1. Оформить правильно англ. термины
    2. Внутренние ссылки оформить примечаниями
    3. Заменить знаки неравенств
    4. Увеличить дроби
    5. Заменить многоточия на \dots
    6. Оформить правильно Источники информации
    7. Добавить См. также

10. Алгоритмы поиска

  1. взяли Целочисленный двоичный поиск (1)
    1. Задачу в Шаблон
    2. В псевдокоде надо l = -1, а к len(a) можно не добавлять 1
    3. Добавить про вариант без переполнения в псевдокод
    4. Заменить дефис на тире
    5. Сделать псевдокод более generic-like
  2. Вещественный двоичный поиск
  3. Троичный поиск (2)
    1. Про == нужно сказать другое
    2. Добавить про унимодальность функции в начале
    3. Сказать, почему плохо, когда функция не строго монотонна
    4. Добавить сюда метод дихотомии
  4. fixed Поиск с помощью золотого сечения (4)
    1. Отформатировать псевдокод
    2. Дроби увеличить
    3. Добавить категории
    4. Небольшой рефакторинг структуры конспекта
    5. Оформить правильно источники информации
    6. Оформить правильно англ. термины
    7. А вообще неплохо бы пояснение переписать и сделать более понятным
  5. Интерполяционный поиск (+2 в карму)
    1. Хотелось бы увидеть пример Интерполяционного поиска на арифметической прогрессии, как говорится в начале, в сравнении с бинпоиском
    2. Можно что-нибудь сказать про интерполяционный поиск на геом. прогрессии или в других предположениях