有一个类Insertion,代码正确无误 可以从一个TXT文件中读取数据并排序,然后将排序后的文件显示出来
我在DOC窗口编译后输入 java Insertion<tiny.txt 显示正确的结果
比如tiny.txt里面是dacb 显示的就是abcd
现在我把代码复制到ECLIPSE里面 怎么操作才能有同样的效果
我按了F11然后在console中
输入 java Insertion<tiny.txt 无显示(首先我的tiny所在目录已经设置了环境变量,其次为了保险我在工作站代码所在目录里面又复制粘贴了一个tiny.txt)
输入 <tiny.txt 无显示
输入 tiny.txt无显示
无奈啊
源代码 如下
StdOut和StdIn在http://algs4.cs.princeton.edu/code/ 下载algs4.jar 类库里
import edu.princeton.cs.algs4.StdOut;
import edu.princeton.cs.algs4.StdIn;
public class Insertion {
public static <T extends Comparable<T>>void sort(T [] a) {
int n = a.length;
for (int i = 0; i < n; i++) {
for (int j = i; j > 0 && less(a[j], a[j-1]); j--) {
exch(a, j, j-1);
}
assert isSorted(a, 0, i);
}
assert isSorted(a);
}
// is v < w ?
private static <T extends Comparable<T>>boolean less(T v, T w) {
return v.compareTo(w) < 0;
}
//exchange a[i] and a[j]
private static <T extends Comparable<T>>void exch(T[] a, int i, int j) {
T swap = a[i];
a[i] = a[j];
a[j] = swap;
//is a[] sorted?
}
private static <T extends Comparable<T>>boolean isSorted(T [] a) {
for(int i = 0;i<a.length;i++)
if (less(a[i+1],a[i])) return false;
return true;
}
//is a[k]~a[m] sorted?
private static <T extends Comparable<T>>boolean isSorted(T [] a,int k,int m) {
for(int i = k;i<m;i++)
if (less(a[i+1],a[i])) return false;
return true;
}
// print array to standard output
private static <T extends Comparable<T>> void show(T [] a) {
for (int i = 0; i < a.length; i++) {
StdOut.print(a[i] + " ");
}
}
//the main method
public static void main(String[] args) {
String[] a = StdIn.readAllStrings();
sort(a);
show(a);
}
}