Алгоритмы для большого анализа O

Команда Интерфейс командной строки AWS (CLI) aws s3 sync скопирует все файлы, которых нет в месте назначения (вроде).

Итак, вам нужно сохранить все ранее загруженные файлы, или вам нужен другой способ отслеживать загруженные файлы.

Вместо этого я бы порекомендовал написать собственную программу, которая:

  • Загружает все файлы из корзины S3 с отметкой времени LastModified после сохраненной отметки времени
  • Сохраняет текущее время
  • Распаковывает файлы и копирует их в другую корзину S3
  • Удаляет файлы ZIP и разархивированные файлы

Итак, программе нужно будет запомнить последний раз он загружал файлы, но ему не нужно помнить, какие файлы он загружал. Будьте осторожны - S3 хранит время в UTC, поэтому вам нужно будет конвертировать ваши часовые пояса. Или просто запомните самое высокое значение LastModified загруженных вами файлов.

Чтобы получить список файлов с определенной даты LastModified, вы можете использовать интерфейс командной строки AWS:

aws s3api list-objects --bucket jstack-a --query "Contents[?LastModified>='2019-04-11'].[Key]" --output text

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

7
задан VarunGupta 23 February 2009 в 07:51
поделиться

6 ответов

2
ответ дан 6 December 2019 в 08:17
поделиться

У меня есть (вполне) несколько примеров:

  • Структура данных находки объединение, которая поддерживает операции в (амортизируемой) инверсии время Ackermann. Это особенно хорошо, потому что структуру данных невероятно легко кодировать.
  • Косые деревья, которые являются самоуравновешивающимися двоичными деревьями (то есть, никакая дополнительная информация не хранится кроме BST - никакая красная/черная информация. Амортизируемый анализ был по существу изобретен для доказательства границ для косых деревьев; косые деревья выполняются в амортизируемое логарифмическое время, но худший случай линейное время. Доказательства прохладны.
  • Fibonacci помещает в "кучу", которые выполняют большинство приоритетных работ с очередями в амортизируемое постоянное время, таким образом улучшая время выполнения алгоритма Dijkstra и других проблем. Как с косыми деревьями, существуют гладкие доказательства "потенциальной функции".
  • Алгоритм Bernard Chazelle для вычислительных минимальных связующих деревьев в линейной инверсии времен время Ackermann. Алгоритм использует мягкую "кучу", вариант традиционной приоритетной очереди, за исключением того, что некоторое "повреждение" могло бы произойти, и запросам нельзя было бы ответить правильно.
  • В то время как по теме MSTs: оптимальный алгоритм был дан Pettie и Ramachandran, но мы не знаем время выполнения!
  • Много рандомизированных алгоритмов заинтересовало исследования. Я только упомяну один пример: Триангуляция Делоне может быть вычислена в ожидаемом O (n, регистрируют n), время путем возрастающего добавления точек; анализ по-видимому сложен, хотя я не видел его.
  • Алгоритмы, которые используют "разрядные приемы", могут быть аккуратными, например, сортирующий в O (n журнал регистрируют n), время (и линейное пространство) - правильно, это повреждается, O (n регистрируют n), барьер при помощи больше, чем просто сравнений.
  • Забывающие о кэше алгоритмы часто имеют интересные исследования. Например, забывающие о кэше приоритетные очереди (см. страницу 3) журнал использования регистрируют n уровни размеров n, n2/3, n4/9, и так далее.
  • (Статические) минимальные диапазоном запросы на массивах аккуратны. Стандартные контрольные испытания Ваши пределы относительно сокращения: минимальные диапазоном запросы уменьшаются до наименее общего предка в деревьях, который в свою очередь уменьшается до запросов минимума диапазона в определенном виде массивов. Заключительный шаг использует милый прием, также.
15
ответ дан 6 December 2019 в 08:17
поделиться

Этот довольно прост, но Вид Расчески уносит мой ум немного.

http://en.wikipedia.org/wiki/Comb_sort

Это - такой простой алгоритм по большей части, это читает как чрезмерно сложная пузырьковая сортировка, но это - O (n*Log [n]). Я нахожу это мягко впечатляющим.

Изобилие Алгоритмов для Быстрых преобразований Фурье является впечатляющим также, математика, которая доказывает, их законность является trippy, и это была забава попытаться доказать некоторых самостоятельно.

http://en.wikipedia.org/wiki/Fast_Fourier_transform

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

2
ответ дан 6 December 2019 в 08:17
поделиться

Недетерминировано полиномиальная сложность получает мой голос, особенно с (по общему признанию рассмотренный вряд ли) возможность, что это может оказаться тем же как многочленом. В том же духе, что-либо, что может теоретически извлечь выгоду из квантовых вычислений (N.B. этот набор ни в коем случае не является всеми алгоритмами).

Другой, который получил бы мой голос, будут общие математические операции на числах произвольной точности - это - то, где необходимо полагать, что вещи как умножение больших чисел являются более дорогими, чем умножение маленьких. Существует довольно большой анализ этого в Knuth (который не должен быть новостями никому). Метод Karatsuba крут: сократите эти два фактора в половине цифрой (A1; A2) (B1; B2), и умножают A1 B1, A1 B2, A2 B1, A2 B2 отдельно, и затем комбинируют результаты. Рекурсивно вызовите при желании...

1
ответ дан 6 December 2019 в 08:17
поделиться

2D заказанный поисковый анализ довольно интересен. У Вас есть 2-мерный числовой массив чисел NxN, где каждая строка отсортирована, лево-право и каждый столбец отсортированы сверху вниз. Задача состоит в том, чтобы найти конкретное число в массиве.

Рекурсивный алгоритм: выберите элемент в середине, сравните с целевым числом, отбросьте четверть массива (в зависимости от результата сравнения), подайте заявку рекурсивно к remainig, который 3 четверти довольно интересны проанализировать.

2
ответ дан 6 December 2019 в 08:17
поделиться

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

0
ответ дан 6 December 2019 в 08:17
поделиться
Другие вопросы по тегам:

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