
Dmitry
29.05.2019
09:55:53
при этом aws s3 ls путь к папке выводит содержимое
каокй апи вызов нужен?
boto / boto3 мне безразлично лишь бы работал

Worlak
29.05.2019
10:16:25

Google

Maxim
29.05.2019
10:16:47

fso
29.05.2019
10:17:40

Worlak
29.05.2019
10:19:16
в два раза? ок
Я бы проверял страницы на различных фреймворках с пхп, а тут выполнение базовых операций в чистом питоне. Для меня 0,8 и 1 не такая уж большая разница чтоб страдать на пхп

fso
29.05.2019
10:20:32

Worlak
29.05.2019
10:20:58

fso
29.05.2019
10:21:22

Worlak
29.05.2019
10:21:44

Maxim
29.05.2019
10:22:07
джентльмены, брек
перл быстрее питона (научный факт), но никто в здравом уме вас на перл не гонит

fso
29.05.2019
10:22:19
и то и другое для сайтов, умеют примерно одинаково. Ларавель быстрее в 3 раза и примерно столько же меньше по памяти ест.
причем интересно, что когда грузишь через Apache Benchmark (ab -n 1000 -c 100), джанга начинает заикаться на второй тысяче запросов, тоесть на повторном запуске теста. Некогда было разбираться, но неприятно. @worlak2

Andrew
29.05.2019
10:25:38
А впаривают делать через deque
tm = timeit.timeit('max3(test_list)', number=1, setup="from __main__ import max3, test_list")
print(tm)
tm2 = timeit.timeit('sorted(test_list)[-3:]', number=1, setup="from __main__ import test_list")
print(tm2)
0.6488101999999998
0.8802487999999999
простой наколенный тест

Google

Евгений
29.05.2019
10:26:39

Worlak
29.05.2019
10:26:51

Andrew
29.05.2019
10:27:00

Евгений
29.05.2019
10:27:34
Перебьёшься
Ваши данные подтвеждены воздухом, не более того...

Andrew
29.05.2019
10:27:47

Aragaer
29.05.2019
10:28:02
/me не очень понимает, куда тут deque
https://docs.python.org/3/library/bisect.html#module-bisect - вот это нядо

Andrew
29.05.2019
10:31:50

Евгений
29.05.2019
10:33:36

Andrew
29.05.2019
10:33:54
Размер массива какой?
test_list = [i for i in range(1000000)] + [i for i in range(1000000)]
random.shuffle(test_list)

Aragaer
29.05.2019
10:35:28
про deque заявлены быстрые добавление и удаление в начале и в конце
про середину речи нет

Andrew
29.05.2019
10:35:53

Aragaer
29.05.2019
10:36:10
но речь идет именно о сортированном

Андрей
29.05.2019
10:36:10

Aragaer
29.05.2019
10:36:26
потому что нам надо добавлять элемент, а потом удалять минимальный

Amaro
29.05.2019
10:36:51
Ну, нахождение трёх максимальных чисел можно сделать за n шагов по три if на каждом, с одним тройным присваиванием, но быстрее сортед оно будет вряд ли. Тестить лень ;)

Евгений
29.05.2019
10:37:40
Быстрее всего найти 3 максимальных через алгоритм выбора, а не deque

Aragaer
29.05.2019
10:38:03

Google

Andrew
29.05.2019
10:38:10

Amaro
29.05.2019
10:38:56
Вот, а вставка сколько стоит?

Aragaer
29.05.2019
10:39:31
константа

Amaro
29.05.2019
10:39:34
В среднем 1.5 if плюс сама вставка?

Aragaer
29.05.2019
10:39:35
точнее O(3)

Andrew
29.05.2019
10:39:36

Aragaer
29.05.2019
10:39:49
я кидал ссылку на bisect, там есть метод insort_left

Алексей
29.05.2019
10:39:52

Aragaer
29.05.2019
10:40:11
ну это вставка в список известного размера

Amaro
29.05.2019
10:40:26
Ну так я и говорю, три ИФА и тройное присваивание и есть О(4.5)

Aragaer
29.05.2019
10:40:32
бред то, что O(3) это O(1)? 8)

Алексей
29.05.2019
10:40:41
вы явно не понимаете суть O нотации

Aragaer
29.05.2019
10:40:57
insort это меньше чем три ифа

Amaro
29.05.2019
10:41:41

Aragaer
29.05.2019
10:41:44
f это O(g) означает, что существуют константы C1 и C2 такие, что C1*f > g > C2*f

Amaro
29.05.2019
10:41:52
Три в максимуме

Aragaer
29.05.2019
10:41:58
два же

Admin
ERROR: S client not available

Amaro
29.05.2019
10:42:58
Если больше большего или больше среднего или больше меньшего
Иначе порядок испортится

Google

Алексей
29.05.2019
10:43:31

Aragaer
29.05.2019
10:43:55
а 1 и 3 это такие замечательные функции, которые для любого значения аргумента равны 1 (и соответственно 3)

Алексей
29.05.2019
10:44:42
то есть смысл О нотации вообще заключается в том, чтобы показать алгоритм будет вести себя при увеличении числа входных данных, а не сколько ифов там сидит

Aragaer
29.05.2019
10:44:50
если f входит в класс O(g), то для любых констант C1 и C2 С1*f + C2 входит в O(g)
ну да

Алексей
29.05.2019
10:45:18

Aragaer
29.05.2019
10:45:19
короче, вставка в отсортированный список это O(N)
для списка длиной 3 это константа, потому что N является константой

Алексей
29.05.2019
10:45:46

Amaro
29.05.2019
10:45:47
Просто О(х) та же хрень, что и с*О(х), но за это я и не против.

Aragaer
29.05.2019
10:45:54
запись O(3.14) не бессмысленна, а равносильна O(10000) или любое другое число

Алексей
29.05.2019
10:46:28

Aragaer
29.05.2019
10:46:48
и не должно
еще раз - вставка в список любой фиксированной (или ограниченной сверху) длины - константа

Amaro
29.05.2019
10:47:08
Но константа все равно имеет смысл, так как один алгоритм окажется в константу раз быстрее другого. А час или два - это всегда разница ;)))

Aragaer
29.05.2019
10:48:15
в данном случае размер списка фиксирован и равен трем, а значит мы вставляем за константу. Вопрос в том, что быстрее - ифы или insort. Мне кажется, что второе. Почему-то

Алексей
29.05.2019
10:48:22

Worlak
29.05.2019
10:48:24
А задающий вопрос уже убежал радоваться сорт и выборке

Aragaer
29.05.2019
10:48:37
а я и не пытался это "показать" через О нотацию.
... наверно надо было смайлик добавить

Google

Amaro
29.05.2019
10:50:03
В смысле, реализации квиксортов между собой

Алексей
29.05.2019
10:50:31
более того, O нотация ничего не говорит про скорость конкретной реализации алгоритма в конкретных условиях, так к примеру алгоритм со сложностью O(n^2) вполне может быстрее чем алгоритм O(n*log(n)) для любого разумного n

Amaro
29.05.2019
10:51:25