- 安装java配置三个用户环境变量:
PATH=.;%JAVA_HOME%\bin
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar;
JAVA_HOME=C:\Program Files\Java\jdk1.7.0_79
-
http://algs4.cs.princeton.edu/code/
下载algs4.jar和algs4-data.zip
将algs4拷贝到C:\Users\hym\algs4文件夹中,修改CLASSPATH为:
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar;C:\Users\hym\algs4\algs4.jar;
- 下载Eclipsehttp://www.eclipse.org/downloads/
注意:我的java版本是1.7下载了对应的eclipse mars,安装完毕后新建JAVA工程Algorithm,添加刚才下载的algs4.jar文件,否则不能使用书中代码的自定义库。项目——Build Path——Configuration Build Path——Libraries——Add External JARs,选中C:\Users\hym\algs4\algs4.jar
添加一个包chapter1,解压algs4-data.zip到和src同一级的文件夹内(必须放在src同一级的文件夹内,否则只能用绝对路径读取文件),添加代码 。
package chapter1;
import java.util.Arrays;
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+(lo+hi)/2;
if(key>a[mid]) lo=mid+1;
else if(key<a[mid]) hi=mid-1;
else return mid;
}
return -1;
}
public static void main(String[] args)
{
//int[] whitelist=In.readInts(args[0]);提示该方法已经失效了,不再支持
int[] whitelist=new In(args[0]).readAllInts();
Arrays.sort(whitelist);
while(!StdIn.isEmpty())
{
int key=StdIn.readInt();
if(rank(key,whitelist)<0)
{
StdOut.println(key);
}
}
}
}
文件结构:
-
Eclipse运行程序:
-
命令行运行方式
cd /d G:\Code\Algorithm\src
javac chapter1\BinarySearch.java
java chapter1.BinarySearch G:\Code\Algorithm\tinyW.txt < G
:\Code\Algorithm\tinyT.txt
注意:cd /d 代表进去其他盘,BinarySearch.class字节码和BinarySearch.java在同一个文件夹中,调用java命令记得包含包名。