Giter Club home page Giter Club logo

aads's Introduction

Алгоритмы и структуры данных

Алгоритмы

Практические работы

Часть 1

  1. Фракталы
  2. Массивы и бинарный поиск
  3. Связные списки
  4. Поиск подстрок в строке
  5. Сортировки
  6. Внешние сортировки

Часть 2

  1. Квадродеревья
  2. Лабиринты
  3. Задача коммивояжера
  4. Параллельный поиск подстроки в строке

Полезные материалы

В этом разделе представлены дополнительные материалы для изучения алгоритмов и структур данных с кратким пояснением. Вы найдете книги, сайты, туториалы, репозитории, плейлисты и другие интернет ресурсы.

Если вы не нашли в этом списке того, что хотели бы видеть, не стесняйтесь открыть pull request и добавить новую ссылку.

Перейти к полезным материалам

aads's People

Contributors

arud3nko avatar electro98 avatar frootin avatar infern397 avatar kuwairo avatar redb0 avatar teenjuna avatar waffflezz avatar zzarryadd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

aads's Issues

Тесты для ПР №1 на время выполнения метода insert

Для практической работы №1 добавить тесты на время выполнения метода insert. Сравнение проводить со стандартной реализаций insert в модуле array.

Для минимизации влияния сдвига последовательно удалять последний элемент.

Тест необходим для проверка перевыделения памяти.

Уменьшить константу времени выполениния метода `append`

В тестах метода append к практической работе №1 уменьшить константу поправки времени выполнения с 2.5 до 2.

Связано с тем, что иногда время выполнения все таки удовлетворяет требованиям при перевыделении памяти на 1 ячейку больше.

Тесты для ЛР1 на время выполнения метода remove

Для практической работы №1 добавить тесты на время выполнения метода remove. Сравнение проводить со стандартной реализаций remove в модуле array.

Для минимизации влияния сдвига последовательно удалять последний элемент.

Тест необходим для проверка перевыделения памяти.

Тесты для бинарного поиска

В практической работе №1 добавить тест для бинарного поиска следующего плана:

  • входные данные: [1, 2, 3, 4, 4, 4, 4, 4, 4, 4, 4]
  • выходные данные: 3

Хеш-функция в практической работе №3

В практической работе №3 в варианте с алгоритмом Рабина-Карпа заменить использование встроенной хеш-функции на реализацию полиномиального кольцевого хеша

Тесты для массива

В практической работе №1 добавить следующие тесты для массива:

  1. Метод remove (тест на удаление именно первого вхождения):
  • входные данные: [1, 2, 3, 2, 1, 2], удаляется 2
  • результат: [1, 3, 2, 1, 2]
  1. Создание массива без инициализации:
  • тест на создание массива только с указанием типа данных, без передачи коллекции для инициализации
  1. Тест на дробный индекс в __setitem__ - должен возбуждать исключение TypeError

Тесты для ЛР№1 на время выполнения метода pop

Для практической работы №1 добавить тесты на время выполнения метода pop. Сравнение проводить со стандартной реализаций pop в модуле array.

Для минимизации влияния сдвига удалять последний элемент.

Тест необходим для проверка перевыделения памяти.

Дополнительные тесты для массива

Необходимо добавить тесты для следующих случаев:

  • remove - удаление элемента, которого нет в массиве, должно возбуждать ValueError
  • append - при добавлении элемента неподходящего типа, например 1.5 в массив типа i или 'qwe', должно возбуждать TypeError
  • Индексация a[1.5] или a['qwe'] должна возбуждать исключение TypeError
  • append со значением 999999999999999 должно возбуждать OverflowError при этом массив должен остаться неизменным
  • Выражение a[0] = 99999999999999999999999999 должно возбуждать OverflowError при этом массив должен остаться неизменным
  • Метод pop без аргумента должен удалять последний элемент

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.