algs4|macOS《算法》idea环境配置及重定位

如何在macOS使用idea运行算法第四版中的代码?

一、引

最近看在《算法》第四版,想测试一下书上的代码,但是书上的代码使用了自己的库,比如输入输出类,又想尝试一下10W个测试数据,折腾了一下。结果发现网上的教程要么无法复现要么系统不对要么软件不对。

系统:macOS 10.15.6 (19G73) idea jdk8

代码和数据在官网可以下载

二、使用

1.创建项目

正常创建

2.导入数据

algs4-data.zip解压放在src目录下(方便重定位指令,但是不美观,可以放在文件夹,指令自行改动)

algs4Data

3、导入algs4.jar

先将algs4.jar放入Java目录的EXtensions文件夹下:/Library/Java/Extensions/(位置不对无法编译)

idea中导入algs4.jar

文件–>项目结构( 快捷键com+; )

模块 --> 依赖 --> (添加) --> 选择/Library/Java/Extensions/下的algs4.jar

(我测试的时候只要Java目录中有algs4.jar,不管添加存放在哪里的algs4.jar都可以,晕)

algs401In

成功添加后,记得确定:

algs402In

algs403In

成功导入后可以看到algs4.jar
注意:直接导入别的目录的也可以看到,但是编译会《找不到》

打开可以复制的代码到src目录下使用,但是注意package路径,且要import这本书自己的库

import edu.princeton.cs.algs4.*;

我的测试代码:

import edu.princeton.cs.algs4.*;
import java.util.Arrays;

public class BinarySearch {
    public static int indexOf(int[] a, int key) {
        int lo = 0;
        int hi = a.length - 1;
        while (lo <= hi) {
            // Key is in a[lo..hi] or not present.
            int mid = lo + (hi - lo) / 2;
            if      (key < a[mid]) hi = mid - 1;
            else if (key > a[mid]) lo = mid + 1;
            else return mid;
        }
        return -1;
    }
    @Deprecated
    public static int rank(int key, int[] a) {
        return indexOf(a, key);
    }
    public static void main(String[] args) {

        // read the integers from a file
        In in = new In(args[0]);
        int[] allowlist = in.readAllInts();

        // sort the array
        Arrays.sort(allowlist);

        // read integer key from standard input; print if not in allowlist
        while (!StdIn.isEmpty()) {
            int key = StdIn.readInt();
            if (BinarySearch.indexOf(allowlist, key) == -1)
                StdOut.println(key);
        }
    }
}

4.编译运行

idea终端运行,因为要使用重定向

cd到src目录 —> 编译代码 —> 运行代码

javac   BinarySearch.java  
java   BinarySearch  largeW.txt < largeT.txt  

algs4Run

只要一直在输出数据就是运行成功了:

algs4Y

附录:

参考:如何在Intellij Idea下编译运行《算法》里的程序?

官网:算法第四版官网

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值