知识屋:更实用的电脑技术知识网站
所在位置:首页 > 科技

终端实现《算法》(第四版)BinarySearch.java程序详细步骤

发表时间:2022-03-25来源:网络

blog实现了命令行终端布置《算法》(第四版)运行学习环境:

首先确保自己PC的java运行环境正常!

一、到官网下载algs4.jar(本书的标准库)和algs4-data.zip(本书的数据支持文件);

官网下载网址:https://algs4.cs.princeton.edu/code/,找到上面的2个文件,下载到本地。

二、解压algs4-data.zip到自己的文件夹备用;解压algs4.jar,将里面的edu文件(即标准库包edu.princeton.cs.algs4.*)夹留着备用;

三、制作项目工程文件:

1⃣️新建立一个文件夹来存放BinarySearch.java,输入代码并保存(注意:书中代码老了,更新后的最新正确代码已附在文章末尾)

2⃣️将解压后的algs4.jar里面的edu文件夹,复制粘贴到该.java文件的目录下

3⃣️在刚才解压algs4-data.zip生成的文件夹里面找到TinyW.txt和TinyT.txt,复制到该.java文件夹下

项目目录入下所示:

四、打开终端(命令行工具),cd定位到该.java的目录,执行命令:

javac BinarySearch.java java BinarySearch TinyW.txt < TinyT.txt

即可运行出结果。

附录:BinarySearch.java

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{ private BinarySearch() { } public static int indexof(int[] a, int key){ //数组必须是有序的 int lo = 0; int hi = a.length - 1; while(lo a[mid]) lo = mid + 1; else return mid; //mid是数组中的坐标 } return -1; } public static int rank(int key, int[] a){ return indexof(a, key); } public static void main(String[] args){ In in = new In(args[0]); int[] allowlist = in.readAllInts(); Arrays.sort(allowlist); while(!StdIn.isEmpty()){ //读取数字,如果不存在白名单上将其打印 int key = StdIn.readInt(); if(BinarySearch.indexof(allowlist, key) == -1) StdOut.println(key); } } }

 

收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜