Числа вида алгоритмом суммы

Добавление sleep между добавлением метки и проверкой статуса метки может помочь обеспечить статус метки файловой системы.

Измените команду с;

e2label /dev/xvdf "dev-external" && e2label /dev/xvdf

на;

e2label /dev/xvdf "dev-external" && sleep 1 && e2label /dev/xvdf

Также устройство может быть автоматически смонтировано с помощью udev, что может быть причиной сбоя добавить метку . Поэтому может потребоваться отключение устройства перед запуском e2label для добавления метки.

7
задан Alex Riley 7 June 2015 в 12:04
поделиться

7 ответов

Только читайте, первые два абзаца - Вы, просто хотят подсказку. Существует эффективное решение этого (если я не сделал ошибку, конечно). Первый вид список. Теперь мы можем написать исходный список как список продуктов непересекающихся циклов.

Например, 5,3,4,2,1 имеет два цикла, (5,1) и (3,4,2). Цикл может думаться, как запускающийся в 3, 4 находится в 3's, пятно, 2 находится в 4's, пятно, и 4 находится в 3's. пятно. Конечная цель 1,2,3,4,5 или (1) (2) (3) (4) (5), пять непересекающихся циклов.

Если мы переключаем два элемента с различных циклов, говорим 1, и 3 затем мы добираемся: 5,1,4,2,3 и в нотации (1,5,3,4,2) цикла. К этим двум циклам присоединяются в один цикл, это - противоположность того, что мы хотим сделать.

Если мы переключаем два элемента с того же цикла, говорим 3, и 4 затем мы добираемся: 5,4,3,2,1 в нотации (5,1) (2,4) (3) цикла. Один цикл разделяется на два меньших цикла. Это получает нас ближе к цели всех циклов длины 1. Заметьте, что любой переключатель двух элементов в том же цикле разделяет цикл на два цикла.

Если мы можем выяснить оптимальный алгоритм для переключения одного цикла, мы можем применить это для всех циклов и получить оптимальный алгоритм для всего вида. Один алгоритм должен взять минимальный элемент в цикле и переключить его с, в чьем положении это находится. Таким образом для (3,4,2) мы переключились бы 2 с 4. Это оставляет нас с циклом длины 1 (элемент просто переключенный в правильное положение) и циклом размера одно меньшее, чем прежде. Мы можем затем применить правило снова. Этот алгоритм переключает наименьшую длину цикла элемента-1 раз и любой элемент однажды.

Преобразовать цикл длины n в циклы длины 1 берет n - 1 операция. На каждом элементе нужно управлять, по крайней мере, однажды (думайте о каждом элементе, который будет отсортирован, он должен быть перемещен в свое правильное положение). Алгоритм, который я предложил, воздействует на каждый элемент однажды, который все алгоритмы должны сделать, затем любая операция была сделана на минимальном элементе. Никакой алгоритм не может добиться большего успеха.

Этот алгоритм берет O (n, регистрируют n) к виду затем O (n) для питания с циклами. Решение одного цикла берет O (длина цикла), общая длина всех циклов является n, таким образом, стоимость операций цикла является O (n). Заключительное время выполнения является O (n, регистрируют n).

6
ответ дан 6 December 2019 в 19:43
поделиться

Я сделал несколько попыток решения одного из примеров вручную:

  • 1 8 9 7 6
  • 6 8 9 7 1 (+6+1=7)
  • 6 8 1 7 9 (7+1+9=17)
  • 6 8 7 1 9 (17+1+7=25)
  • 6 1 7 8 9 (25+1+8=34)
  • 1 6 7 8 9 (34+1+6=41)

Так как необходимо было переместить этот 1, кажется, что Вам, вероятно, придется сделать исчерпывающий поиск для завершения проблемы - детали которого были уже отправлены другим пользователем. Обратите внимание обнаружение с проблемами, если набор данных будет большим при выполнении этого метода.

Если проблема допускает "близкие" ответы, можно просто сделать жадный алгоритм, который помещает самый большой объект в положение - или выполнение так непосредственно, или путем свопинга самого маленького элемента в тот слот сначала.

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

Я предполагаю, что память свободна, и можно моделировать вид прежде, чем выполнить ее на реальных объектах.

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

Выполните цикл, который исключает самый дешевый объект очереди из очереди и ставит в очередь все возможные шаги единственной подкачки, запускающиеся в той точке. Продолжайте управлять циклом, пока у главы очереди не будет отсортированного списка.

3
ответ дан 6 December 2019 в 19:43
поделиться

Сравнения и обходы, по-видимому, прибывают бесплатно, можно предварительно вычислить "расстояние", число должно переместиться (и эффективно заключительный порядок сортировки). Загадка является алгоритмом подкачки.

Уменьшение полных подкачек очевидно важно. Уменьшение подкачек большего числа также важно.

Я вполне уверен, оптимальный процесс подкачки не может быть гарантирован путем оценки каждого упорядочивания способом не сохраняющим состояние, хотя Вы могли бы часто приближаться (не проблема).

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

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

Найдите самое маленькое количество, N. Любые пары чисел, которые занимают желаемые местоположения друг друга, должны быть подкачаны, за исключением N. Соберите (грубой силой) набор каждого набора чисел, которые могут быть взаимно подкачаны в их желаемые местоположения, такие, что стоимость сортировки набора среди себя является меньше, чем стоимость свопинга каждого элемента набора с N. Эти наборы будут включать много циклов. Подкачка в тех циклах таким способом, которым самое маленькое количество подкачивается дважды. Подкачайте все остающиеся числа, которые включают цикл включая N, с помощью N как заполнитель.

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

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

0
ответ дан 6 December 2019 в 19:43
поделиться

Как подсказка, это сильно пахнет динамическим программированием; это не могло бы быть достаточно точно подсказка для помощи, но я скорее запущу со слишком мало!

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

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