我正在尝试读入一个整数文件,该文件将被排序然后输出到另一个文件中。它可以做任何事情,除了在终端中获取输入文件。我不知道为什么,我已经包含了整个代码,而注释部分是似乎不起作用的部分(因为当我将数组硬编码到代码中时它工作正常)。提前致谢。
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");
}
}