在这里就不吐槽看算法书籍,自己配环境的艰苦,现在分享下详细的eclipse中第一个二分法案例。
注:详情请看书籍
1. 第一步下载algs4.jar包,从http://algs4.cs.princeton.edu/code/官网下载。
2. 在eclipse中创建一个项目,这个就不说了,然后将jar包copy进lib包下,右键build Path 将jar包添加进环境
3,在任意文件下创建tinyT.txt,tinyW.txt文件,内容如下:
4. 写代码
import java.util.Arrays;
import com.sun.org.apache.xalan.internal.xsltc.compiler.sym;
import edu.princeton.cs.algs4.In;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;
public class BinarySearch {
public static int rank(int key, int a[]) {
int lo = 0;
int hi = a.length -1;
while (lo <= hi) {
int mid = lo + (hi - lo) / 2;
if (key > a[mid]) {
lo = mid + 1;
}else if (key < a[mid]) {
hi = mid - 1;
}else {
return mid;
}
}
return -1;
}
@SuppressWarnings("deprecation")
public static void main(String[] args) {
int[] readInts = In.readInts(args[0]);
Arrays.sort(readInts);
while (!StdIn.isEmpty()) {
int readInt = StdIn.readInt();
int rank = rank(readInt, readInts);
if (rank < 0) {
StdOut.println(readInt);
}
}
}
}
5. 右键main函数, run as 选择 run configurations
6.点击common
其中文件路径要改成自己文件的路径
7. 添加main函数启动参数, 路径是自己文件的路径
8. 然后就可以运行了。。(具体问题在下方留言)
9. 下面是自己运行的发现,代码中的StdIn.readInt();这个存在问题,最后一位数读取不到,这是我自己的发现,可能是封装有点小错