我读过很多关于这个问题的答案,但没有发现两个文件之间的比较,实际上这是这本书的一个样本算法基于二分查找,这是源代码
import java.util.Arrays;
import edu.princeton.cs.algs4.*;
public class prac1_1_23{
public static boolean BinaryLookup(int key, int[] arr) {
int low = 0;
int high = arr.length - 1;
while(low <= high) {
int mid = low + ((high - low) >> 1);
if(key < arr[mid])
high = mid - 1;
else if(key > arr[mid])
low = mid + 1;
else
return true;
}
return false;
}
public static void main(String[] args) {
char symbol = '-';
int[] whitelist = new In(args[0]).readAllInts();
Arrays.sort(whitelist);
while(!StdIn.isEmpty()) {
int key = StdIn.readInt();
boolean found = BinaryLookup(key, whitelist);
if('+' == symbol && !found)
StdOut.println(key);
if('-' == symbol && found)
StdOut.println(key);
}
}
}
该示例使用了本书作者创建的库,可以通过以下方式访问该库:算法 http://algs4.cs.princeton.edu/code/,问题是当我想通过电源外壳Windows 的,如命令
java prac1_1_23 largeW.txt < largeT.txt
我遇到了类似的问题error https://i.stack.imgur.com/nef4f.png
实际上我找到了运行此代码的解决方案,但在 PowerShell 上解决它是无用的,这需要我使用本书作者编写的命令行程序,该程序可以在“algs4.cs.princeton.edu/windows”网站上下载/”,并且需要使用命令行编译并运行程序,例如
javac-algs4 prac1_1_23.java //compile command
java-algs4 prac1_1_23 largeW.txt < largeT.txt //run command
它确实有效,但我想知道我们是否可以利用原始的 CLI,因为我发现有人可以在 Linux 操作系统上运行原始代码而不会出现问题。
如有任何帮助,我们将不胜感激,谢谢。
您是否尝试过在重定向前加上前缀--%
操作员?例如:
cmd /c --% java prac1_1_23 largeW.txt < largeT.txt
上面的命令在命令前添加了三件事,让我解释一下:
这样您就不需要命令脚本。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)