ソートされてから別のファイルに出力される整数のファイルを読み込もうとしています。ターミナルで入力ファイルを取得する以外はすべて実行できます。理由はわかりませんが、コード全体を含めましたが、コメント部分は機能していないように見える部分です (配列をコードにハードコーディングすると正常に機能するため)。前もって感謝します。
class Quicksort {
public void qSort(int[] a, int p, int r) {
if (p < r) {
int q = Partition(a, p, r);
qSort(a, p, q - 1);
qSort(a, q + 1, r);
}
}
private static int Partition(int[] A, int p, int r) {
int x = A[p];
System.out.println(x + " ");
int i = p;
int j = r;
int temp = 0;
while (true) {
while (A[j] > x) {
j--;
}
while (A[i] < x) {
i++;
}
if (i < j) {
temp = A[j];
A[j] = A[i];
A[i] = temp;
} else {
return j;
}
}
}
}
public class QuickSortTest {
public static void main(String[] args) throws IOException {
long time1 = System.nanoTime();
Quicksort qsort = new Quicksort();
// ArrayList<Integer> dataReadIn = new ArrayList();
// FileReader fileToBeRead = new FileReader("test.txt");
// Scanner src = new Scanner(fileToBeRead);
// src.useDelimiter("[,\\s*]");
// int p = 0;
// while (src.hasNext())
// {
// if (src.hasNext())
// {
// dataReadIn.add(src.nextInt());
// System.out.println(p);
// p++;
// }
// else {
// break;
// }
// }
//
// int[] array = new int[dataReadIn.size()];
// for(int a = 0; a < array.length; a++)
// {
// array[a] = dataReadIn.get(a);
// }
int[] array = { 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
79, 80, 81, 82, 83, 26, 28 };
int length = array.length;
System.out.println(length);
System.out.println("Pivot Element: ");
qsort.qSort(array, 0, length - 1);
PrintWriter out = new PrintWriter(new FileWriter("OutputArray"));
for (int i = 0; i < array.length; i++) {
out.println(array[i] + " ");
}
out.close();
long time2 = System.nanoTime();
long time = (time2 - time1) / 1000;
System.out.println("Total time: " + time + "ms");
}
}