Различия между версиями 10 и 11
Версия 10 от 2011-05-06 13:18:46
Размер: 3214
Редактор: FrBrGeorge
Комментарий:
Версия 11 от 2011-05-06 13:34:02
Размер: 3458
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 23: Строка 23:
  1. Сгенерировать текстовый файл с таблицей вида [уникальное случайное число, случайная строка] на 10**5 элементов. Измерить (например, с помощью функции `times()` из модуля `os`) время поиска элемента по 1000 поисковых проб в этих данных (если работает слишком быстро, увеличить оба параметра в достаточное число раз), представленных в виде   1. Сгенерировать текстовый файл со строками вида "случайная строка
     уникальное_
случайное_число" на 10**5 элементов. Измерить (например, с помощью функции `times()` из модуля `os`) время поиска присутствующих и не присутствующих в этих данных строк (по 1000 поисковых проб). Если работает слишком быстро/медленно, увеличить/уменьшить оба параметра в достаточное число раз. Данные представить в виде:
Строка 26: Строка 27:
   1. двоичного дерева (заполняемого с балансировкой и без балансировки)     * использовать функцию `hash()`
    * использовать самодельный хеш
    * использовать MD5-хеш
   1. двоичного дерева
    * заполняемого с балансировкой

Тема занятия: структуры данных и поиск

  • {o} — тема по Linux

  • <!> ­— необязательная тема

  • массив -- прямой доступ: быстро, но требует памяти (если неплотный набор ключей)
  • список -- ассоциативный доступ: разумно по памяти, медленный поиск
  • хеш-таблицы, в Питоне функция hash(), реализация словарей

  • Полиномиальное хеширование
    • H=(a0*p**0+a1*p**1+...+an*p**n)%2**16, где p -- простое число, например, 31337, а a0..an -- числа из хэшируемой последовательности (в случае строки символов -- коды символов)
  • Дерево бинарного поиска [значение, поддерево-меньше, поддерево-больше]
    • оптимальное дерево: размер(поддерево-меньше)~=размер(поддерево-больше)
    • заполнение дерева с перебалансировкой
      • виды деревьев: AVL, красно-чёрное, декартово
    • дерево поиска в общем виде [значение,поддерево-<K1,поддерево-K1<k2,...,поддерево-kn-1<соответственkn,поддерево->kn)] -- несколько ключей. Соответственный показатель степени и основание логарифма для количества узлов и уровней.

Домашнее задание

  • {i} — теоретическое задание

  • {*} — новая тема

  1. Почитать про упомянутые структуры данных.
  2. Сгенерировать текстовый файл со строками вида "случайная строка
    • уникальное_случайное_число" на 10**5 элементов. Измерить (например, с помощью функции times() из модуля os) время поиска присутствующих и не присутствующих в этих данных строк (по 1000 поисковых проб). Если работает слишком быстро/медленно, увеличить/уменьшить оба параметра в достаточное число раз. Данные представить в виде:

    1. линейного списка
    2. хешированной таблицы
      • использовать функцию hash()

      • использовать самодельный хеш
      • использовать MD5-хеш
    3. двоичного дерева
      • заполняемого с балансировкой
    4. стандартного словаря (dict)
  3. Задача №765. Частоты появления элементов

  4. Задача №744. Хеширование


CategoryClass CategoryVmsh

LecturesVMSH/2011-05-04 (последним исправлял пользователь FrBrGeorge 2011-05-11 14:52:26)