关于《算法(第四版 谢路云译)》标准库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)社区版免费,企业版要收费,内部含有类似于cmd的Terminal很方便调试代码)
关于《算法(第四版 谢路云译)》标准库In、Out、StdOut和StdIn的正确配置和调用经验分享(以BinarySearch二分查找算法为例)相关推荐
- JavaScript实现binarySearch二分查找算法(附完整源码)
JavaScript实现binarySearch二分查找算法(附完整源码) Comparator.js完整源代码 binarySearch.js完整源代码 binarySearch.test.js完整 ...
- 0202插入删除-算法第四版红黑树-红黑树-数据结构和算法(Java)
文章目录 4 插入 4.1 序 4.2 向单个2-结点插入新键 4.3 向树底部的2-结点插入新键 4.4 向一棵双键树(3-结点)中插入新键 4.5 颜色调整 4.6 根结点总是黑色 4.7 向树底 ...
- 01基础-算法第四版红黑树-红黑树-数据结构和算法(Java)
文章目录 1 前言 2 定义 2.1 替换3-结点 2.2 等价定义 2.3 一一对应 3 基础 3.1 颜色表示 3.2 结点表示 3.2 旋转 3.3 旋转后重置父结点的链接 后记 1 前言 目前 ...
- WordNet 普林斯顿 算法第四版
普林斯顿 算法第四版 本文的代码以及之前的作业代码可通过一下github链接获得 https://github.com/Changjing-Liu/algorithm_lab 文章目录 普林斯顿 算法 ...
- 二分查找算法java
二分查找又称折半查找,它是一种效率较高的查找方法. 折半查找的算法思想是将数列按有序化(递增或递减)排列,查找过程中采用跳跃式方式查找,即先以有序数列的中点位置为比较对象,如果要找的元素值小于该中点元 ...
- leetcode中关于使用二分查找算法思想deal的题型
学习了二分查找的算法思想之后,再leetcode上写了一道常见的简单面试题,现在用博客记录一下我学习刷题的笔记! leetcode 题号69:Sqrt(x)(经典的面试题) 给你一个非负整数 x ,计 ...
- 1.1.10 从二分查找BinarySearch开启算法学习之路---《java算法第四版》
文章目录 0.前言 1.功能 2.示例 有两个名单tinyW.txt和tinyT.txt,将tinyT.txt名单中不在tinyW.txt的数据打印出来 ① 实现原理 ② 实现代码 ③ 性能分析 0. ...
- 算法第四版扔鸡蛋问题
本题来源于算法第四版1.4.25.1.4.26. 同时好像记得看过的腾讯面经里也问到过类似题目,因此觉得有必要仔细做一下. 题目如下: 一幢 100 层的大楼,给你两枚鸡蛋.假设,在第 n 层扔下鸡蛋 ...
- 算法第四版- 3.1
算法第四版- 3.1 文章目录 **算法第四版- 3.1** 1.二分查找 1)LC704二分查找 2)LC744二分查找 3)LC33搜索旋转排序数组 4)搜索旋转数组进阶 2.跳表 1.二分查找 ...
最新文章
- 远程Gitlab新建的分支在IDEA里不显示
- 自建html网页,幽灵自建的html5 的模板文件!
- 秦刚:积累财富最简单的一种模式:打造一项高收入技能
- Ansible自动化运维笔记1(安装配置)
- MySQL查询的进阶操作--子查询(内查询)
- 中央空调“国进外退”,格力、美的、海尔三大白如何角逐新市场?
- Pytorch中DNN入门思想及实现
- Bootstrap模态出现在背景下
- linux scp(ssh)免密发送(登陆)配置方法
- html5 星际摩托,HTML5 星际陨石环绕动效
- java将乱码转换成中文_转:java中文乱码的解决
- android控制灯编程,远程控制智能灯(android)
- python3.8安装pygame_Python3.8安装Pygame教程
- 找到某个关键字 同义词词林 python_3.6 什么是LSI关键字?为什么它对SEO很重要?...
- 解决MacOs10.15+ shimo 无法正常使用 PPTP协议问题
- js大于等于小于等于书写
- 文档型漏洞攻击研究报告
- Docker 容器监控原理及 cAdvisor 的安装与使用
- 大数据分析行业发展趋势
- 转战物联网·基础篇13-了解物联网之物连接相关通信技术(2)
热门文章
- 96.(leaflet之家)leaflet态势标绘-进攻方向修改(燕尾)
- IT三部曲之达摩研究院(上)
- 微信小程序开放平台代码部署特约商户
- ARM CPU挂死和总线挂死的DS-5调试方法
- 处理solr时遇到的问题
- android开发板出错,Kernel panic - not syncing: Attempted to kill the idle task!出错,求助!!!...
- linux 模拟器安卓版下载,ONS模拟器下载
- hdlc和ppp的pap认证和cahp认证,gre和mgre的使用和详解,nat地址的转换
- 不支持IE8及以下版本
- Python 常用的标准库以及第三方库有哪些?