关于《算法(第四版 谢路云译)》标准库In、Out、StdOut和StdIn的正确配置和调用经验分享(以BinarySearch二分查找算法为例)

    本人初学《算法(第四版 谢路云译)》有一段时间了,对于初学者按书敲完第一个BinarySearch二分查找算法发现运行错误,我相信大家跟我一样内心是崩溃的。还好经过翻看多个相关论坛以及自己不断尝试最终调通了代码,在此我想把自己的经验分享给想学习算法和数据结构的大家,希望大家看完能有收货少走一些弯路。(第一次写博客,如有不详,见谅,请大牛们不要客气在评论区指正补充。)


1.确保Java环境配置正确(适用于JDK8及以下,JDK9将JDK和JRE分成两个独立的文件夹配置稍有不同不作讲解)

    新建用户变量:JAVA_HOME 、CLASSPATH 和系统变量:Path(确保JDK没安装在C盘,如果安装在C盘,三个变量都应在系统变量下,以确保能有足够权限掉用C盘路径里的库文件包。)

变量名:JAVA_HOME
变量值:d:\Program Files\Java\jdk1.8.0_102(JDK安装路径)

变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\algs4.jar
%JAVA_HOME%\lib\algs4.jar,该多出的路径正是正确调用算法中库方法的关键,algs4.jar是在算法书中提供的学习网站上下载的https://algs4.cs.princeton.edu/code/,该网站提供了算法书上所有的内容及源代码数据文件等等,不过其实这代码资料其实algs4.jar压缩包解压后全有,在edu\princeton\cs\algs4路径下,该路径也是后面import调用库方法常用的路径,既然要常用我们就把该文件跟java自带的库文件放在一起,将下载下来的algs4.jar复制到d:\Program Files\Java\jdk1.8.0_102\lib


变量名:Path
变量值:d:\Program Files\Java\jdk1.8.0_102\bin;d:\Program Files\Java\jdk1.8.0_102\jre\bin;

测试环境变量配置是否成功。同时按住Win和R键,桌面左下角弹出‘运行’窗口,输入cmd,再回车;跳出命令行窗口输入依次输入java -version”、javac”、“java


2.学会用cmd命令行窗口运行Java代码

    准备好BinarySearch.java tinyW.txt tinyT.txt largeW.txt largeT.txt (这些文件在algs4.jar压缩包解压后edu\princeton\cs\algs4路径下全有,前面有提到) 放到同一路径下例如 E:\Program\java\BinarySearch下           对于源代码我们还需要修改一下,删除package edu.princeton.cs.algs4; 在后面添加

import edu.princeton.cs.algs4.In;
import edu.princeton.cs.algs4.StdIn;
import edu.princeton.cs.algs4.StdOut;                                             

 保存代码后我们就可以开始用cmd来运行该代码了。 (以后其他代码类似,在源代码开头注释中有提到代码用到的库方法,按照以上方法,删除package edu.princeton.cs.algs4; 在后面添加需要用到的库方法就行)    

 第一步:将cmd访问路径更改到 E:\Program\java\BinarySearch

 第二步:编译代码,输入javac BinarySearch.java (该路径下会生成同名的.class文件) 

 第三步:运行代码,输入 java BinarySearch tinyW.txt < tinyT.txt 

 和输入 java BinarySearch largeW.txt < largeT.txt | more (去掉| more后会运行很久也不太好检查结果,不建议去掉但也可以试试;运行结果会显示到-- More --,想看到下一个数据按Enter键就可以

最终运行结果与源代码注释和书上结果一样  

/******************************************************************************
 *  Compilation:  BinarySearch.java
 *  Execution:    java BinarySearch whitelist.txt < input.txt
 *  Dependencies: In.java StdIn.java StdOut.java
 *  Data files:   http://algs4.cs.princeton.edu/11model/tinyW.txt
 *                http://algs4.cs.princeton.edu/11model/tinyT.txt
 *                http://algs4.cs.princeton.edu/11model/largeW.txt
 *                http://algs4.cs.princeton.edu/11model/largeT.txt
 *
 *  % java BinarySearch tinyW.txt < tinyT.txt
 *  50
 *  99
 *  13
 *
 *  % java BinarySearch largeW.txt < largeT.txt | more
 *  499569
 *  984875
 *  295754
 *  207807
 *  140925
 *  161828
 *  [367,966 total values]
 *  
 ******************************************************************************/

(注释给出的运行结果)     

                                

(cmd中的运行结果)


3.提高部分(相比于eclipse建议使用JetBrain公司出的java开发工具Intellij IDEA(Community Edition)社区版免费,企业版要收费,内部含有类似于cmdTerminal很方便调试代码


  • 15
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值