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

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

Любые элементы в массиве x могут быть помещены в массив y и обратно. Элементы, принадлежащие массиву y, никогда не могут быть перемещены (если они не были перемещены из массива x).

Пользователь может перемещать эти элементы в два списка, используя простой пользовательский интерфейс javascript. Чтобы упростить задачу, я изначально создал наивный сценарий, который:

Переместил элемент из a в y.Выполнил некоторую логику, используя эту «возможность»Если результат был меньше, чем раньше, оставьте x в y.Если нет, то x остается в x.Перейдите к следующему элементу в x и повторите.

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

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

массив x = [100 200 300 400 500] массив y = [50 150 350 900]

С этими двумя массивами для каждого значения из x поместите каждую комбинацию этого значения и всех других значений из x в массив y. Для каждого из них я выполню некоторую логику (т. Е. Результат теста и сохраню эту «перестановку» в массиве (объект из двух массивов, представляющих x и y). Я предполагаю, что это довольно дорого с большими массивами, которые, вероятно, будут повторять много Я чувствую, что я почти на месте, но проиграл на этом последнем этапе.

Извините за длинное объяснение, и заранее спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос