Это код, который я получил из Интернета. Оптимизированный код перестановки в Java
Когда я попытался выполнить его, потребовалось много времени для элементов подсчета 7. Но когда я пробовал 14, я получил ниже исключения.
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOf(Arrays.java:2219) at java.util.ArrayList.toArray(ArrayList.java:329) at java.util.ArrayList.addAll(ArrayList.java:530) at Test.permute(Test.java:45) at Test.permute(Test.java:41) at Test.permute(Test.java:41) at Test.permute(Test.java:41) at Test.main(Test.java:18) Java Result: 1
Моя конфигурация системы - это 3-й генератор i5, 8 ГБ оперативной памяти. Во время работы программы потребление процессора составляло 98-100%.
Так что мой вопрос:
- Есть ли банки для делать перестановку эффективно?
- Что я могу сделать в этом коде для повышения производительности?
Мое требование:
- Нужно переставить группу (т.е. более 30) целочисленных значений.
Downvoters пожалуйста прокомментируйте причине
Не могли бы вы быть более конкретными в своем заявлении о проблемах? Что вы переставляете? – Zyerah
Я отредактировал вопрос, включая мою потребность. – Maximin
Когда вы говорите «переставить», нужно ли сортировать элементы? – Padrus