Я пытаюсь изменить этот алгоритм кучи, который показывает все возможные перестановки ввода строк.Я пытаюсь изменить код, чтобы его можно было использовать с классом Scanner с файлом писателя.Когда я пытаюсь записать в новый файл, он не добавляет все 24 строки, как следует, а скорее добавляет первые 4. Поскольку это метод void, я не могу использовать pw.println (obj.heapPermutation (a, a.длина, длина)).Любые предложения, чтобы решить эту проблему?
Спасибо
PS Я нашел этот код в Интернете, и я признаю, что он не мой.
import java.util.Scanner;
import java.io.*;
import static java.lang.System.*;
class HeapAlgo
{
void heapPermutation(String a[], int size, int n) throws IOException
{
FileWriter fw = new FileWriter("note.txt");
PrintWriter pw = new PrintWriter(fw);
// if size becomes 1 then prints the obtained
// permutation
if (size == 1)
for (int i=0; i<n; i++)
{
System.out.println(a[i] + "");
}
for (int i=0; i<size; i++)
{
heapPermutation(a, size-1, n);
// if size is odd, swap first and last
// element
if (size % 2 == 1)
{
String temp = a[0];
a[0] = a[size-1];
a[size-1] = temp;
}
// If size is even, swap ith and last
// element
else
{
String temp = a[i];
a[i] = a[size-1];
a[size-1] = temp;
}
}
}
public static void main(String args[]) throws IOException
{
HeapAlgo obj = new HeapAlgo();
String a[] = new String["abcd","bbbb","cccc","dddd"];
obj.heapPermutation(a, a.length, a.length);