8000 GitHub - Ren4lk/test_lesta_games
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Ren4lk/test_lesta_games

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Задание

Вопрос №1

На языке Python написать алгоритм (функцию) определения четности целого числа, который будет аналогичен нижеприведенному по функциональности, но отличен по своей сути. Объяснить плюсы и минусы обеих реализаций.

Пример:

def isEven(value):
    return value % 2 == 0

Вопрос №2

На языке Python написать минимум по 2 класса реализовывающих циклический буфер FIFO. Объяснить плюсы и минусы каждой реализации.

Оценивается:

  • Полнота и качество реализации
  • Оформление кода
  • Наличие сравнения и пояснения по быстродействию

Вопрос №3

На языке Python предложить алгоритм, который быстрее всего (по процессорным тикам) отсортирует данный ей массив чисел. Массив может быть любого размера со случайным порядком чисел (в том числе и отсортированным). Объяснить, почему вы считаете, что функция соответствует заданным критериям.


1.

mod time: 6.4
& time: 5.0

Вариант с логическим и быстрее в силу работы с самими битами числа, и отсутствием вычисления "дорогой" операции деления. Но такой вариант требует немного больше времени для понимания что происходит читателю

2.

Addition speed:
DequeCircularBuffer time: 23.747684
ListCircularBuffer time: 26.3042843

Buffer size:
DequeCircularBuffer size: 82500760
ListCircularBuffer size: 80000056

Pop speed:
DequeCircularBuffer time: 7.8169389
ListCircularBuffer time: 9.7740865

Циклический буфер в основе которого лежит двунаправленная очередь работает быстрее, чем буфер, в основе которого лежит список, в силу того что в нем используются эффективные операции добавления и удаления 545B в конец и начало коллекции. Также можно заметить что буффер с deque занимает больше памяти, это связано с тем, что он хранит ссылки на каждый узел, что и позволяет эффективно добавлять и удалять элементы в начало и конец.

3.

Быстрее всего с задаными условиями справится Timsort который уже реализован в Python (sorted()), который является гибридом сортировки вставками и слиянием. Худшая и средняя сложность O(n logn), лучшая O(n)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

0