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

本文详细介绍了如何在本地计算机上搭建《算法》(第四版)的学习环境,包括下载和配置必要的库文件,创建项目工程,以及使用命令行工具进行代码编译和运行的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 <= hi){
        	int mid = lo + (hi - lo) / 2;
        	if(key < a[mid])
        		hi = mid - 1;
        	else if(key > 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);
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值