Существует ли когда-нибудь серьезное основание использовать Вид Вставки?

Это вызвано отсутствующим заголовком, специфичным для Uses-Agent. Похоже, сайт проверяет это. Вызов возвращает HTTP 406 (response.status_code). С заголовком возвращается HTTP 200.

Попробуйте это:

import requests
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"}
response = requests.get(url='some url', headers=header)
requests.post(url='my_url', files={'file':response.content})
38
задан 10 April 2009 в 07:03
поделиться

5 ответов

Из http://www.sorting-algorithms.com/insertion-sort :

Хотя это один из элементарных алгоритмов сортировки с O (n 2 ) время наихудшего случая, сортировка вставки алгоритм выбора либо когда данные почти отсортированы (потому что это адаптивный) или когда размер проблемы маленький (потому что он имеет низкий накладные расходы).

По этим причинам, а также потому, что это также стабильно, сортировка вставки часто используется в качестве рекурсивного базового случая (когда размер проблемы мал) для выше накладные расходы «разделяй и властвуй» алгоритмы сортировки, такие как сортировка слиянием или быстрая сортировка.

53
ответ дан Community 27 November 2019 в 03:23
поделиться

Важной концепцией при анализе алгоритмов является асимптотический анализ. В случае двух алгоритмов с разными асимптотическими временами выполнения, таких как один O (n ^ 2) и один O (nlogn), как в случае с сортировкой вставкой и быстрой сортировкой соответственно, , это не определенно, что один быстрее, чем другое.

Важным отличием такого рода анализа является то, что для достаточно большого N один алгоритм будет быстрее другого. При анализе алгоритма до такого термина, как O (nlogn), вы отбрасываете константы. При реалистическом анализе работы алгоритма эти константы будут важны только для ситуаций с малым n.

Так что это значит? Это означает, что для некоторых малых n некоторые алгоритмы работают быстрее. Эта статья от EmbeddedGurus.net включает интересную перспективу выбора различных алгоритмов сортировки в случае ограниченного пространства (16 КБ) и ограниченной системы памяти. Конечно, статья ссылается только на сортировку списка из 20 целых чисел, поэтому большие порядки n не имеют значения. Более короткий код и меньшее потребление памяти (а также избегание рекурсии) были в конечном счете более важными решениями.

Сортировка вставок имеет низкие накладные расходы, она может быть написана довольно кратко и имеет несколько ключевых преимуществ: она стабильна и имеет довольно быстрый случай, когда вход почти отсортирован.

так что большие порядки n не имеют значения. Более короткий код и меньшее потребление памяти (а также избегание рекурсии) были в конечном счете более важными решениями.

Сортировка вставок имеет низкие накладные расходы, она может быть написана довольно кратко и имеет несколько ключевых преимуществ: она стабильна и имеет довольно быстрый случай, когда вход почти отсортирован.

так что большие порядки n не имеют значения. Более короткий код и меньшее потребление памяти (а также избегание рекурсии) были в конечном счете более важными решениями.

Сортировка вставок имеет низкие накладные расходы, она может быть написана довольно кратко и имеет несколько ключевых преимуществ: она стабильна и имеет довольно быстрый случай, когда вход почти отсортирован.

17
ответ дан AShelly 27 November 2019 в 03:23
поделиться

Я большой большой поклонник Java MappedByteBuffers для подобных ситуаций. Это пылает быстро. Ниже приведен фрагмент, который я собрал для вас, который отображает буфер в файл, ищет в середине, а затем выполняет поиск в обратном направлении, чтобы найти символ новой строки. Этого должно быть достаточно, чтобы начать работу?

У меня есть подобный код (поиск, чтение, повтор до завершения) в моем собственном приложении, сравнительный тест java.io передает в потоковом режиме MappedByteBuffer в производственной среде и публикует результаты в моем блоге ( посты с геоматикой, помеченные «java.nio» ) с необработанными данными, графиками и все.

Два вторых резюме? Моя реализация на основе MappedByteBuffer была примерно на 275% быстрее. YMMV.

Для работы с файлами размером более ~ 2 ГБ, что является проблемой из-за приведения и .position (int pos) , я создал алгоритм подкачки, поддерживаемый массивом MappedByteBuffer S. Вам нужно будет работать в 64-битной системе, чтобы она работала с файлами размером более 2-4 ГБ, потому что MBB используют систему виртуальной памяти ОС, чтобы творить свое волшебство.

4
ответ дан BobbyShaftoe 27 November 2019 в 03:23
поделиться

If you're talking about maintaining a sorted list, there is no advantage over some kind of tree, it's just slower.

Well, maybe it consumes less memory or is a simpler implementation.

Inserting into a sorted list will involve a scan, which means that each insert is O(n), therefore sorting n items becomes O(n^2)

Inserting into a container such as a balanced tree, is typically log(n), therefore the sort is O(n log(n)) which is of course better.

But for small lists it hardly makes any difference. You might use an insert sort if you have to write it yourself without any libraries, the lists are small and/or you don't care about performance.

1
ответ дан MarkR 27 November 2019 в 03:23
поделиться

ДА,

Сортировка вставкой лучше, чем быстрая сортировка в коротких списках.

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

Также ...

Для ведения таблицы результатов двоичная сортировка вставкой может быть настолько хорошей, насколько это возможно.

См. на этой странице .

]
1
ответ дан 27 November 2019 в 03:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: