如何从robertsedgewick的算法教科书中运行java程序?

kiz8lqtg  于 2021-07-12  发布在  Java
关注(0)|答案(3)|浏览(281)

我为一个新手问题道歉。我正在尝试在eclipse中运行由robert sedgewick和kevin wayne撰写的第4版《算法》一书中给出的java程序:https://algs4.cs.princeton.edu/home/
我对程序的输入参数有问题。
例如,对于以下程序:

import java.util.Arrays;

public class BinarySearch
{
    public static int rank(int key, int[] a)
    { // Array must be sorted.
     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;
    }

    public static void main(String[] args)
    {

        int[] whitelist = In.readInts(args[0]);
        Arrays.sort(whitelist);
        while (!StdIn.isEmpty())
        { // Read key, print if not in whitelist.        
         int key = StdIn.readInt();
            if (rank(key, whitelist) < 0)
            StdOut.println(key);
        }    
    }
}

输入参数为:

% java BinarySearch tinyW.txt < tinyT.txt

我不知道在eclipse中在哪里传递输入参数。任何帮助都将不胜感激。

kb5ga3dv

kb5ga3dv1#

进入“运行配置…”打开播放按钮的菜单。

您可以在arguments、environment选项卡和common中找到所需的内容。实际上常见的是你需要的标签。

ippsafx7

ippsafx72#

谢谢大家!我解决了。显然,图书网站上提供的较新的图书馆与我的书有一些不同。
我将主要功能更改如下:

import java.util.Arrays;
public class BinarySearch{
public static int rank(int key, int[] a)
{ // Array must be sorted.
    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;
}

public static void main(String[] args)
{
    In i = new In(args[0]);
    In j = new In(args[1]);
    int[] whitelist = i.readAllInts();
    int[] iplist = j.readAllInts();
    Arrays.sort(whitelist);
    for (int key:iplist)
    { // Read key, print if not in whitelist.
        if (rank(key, whitelist) < 0)
        StdOut.println(key);
    }
}
}

然后通过

"tinyW.txt" "tinyT.txt"

作为程序参数,如@gdg612所示。

bvpmtnay

bvpmtnay3#

右键单击程序并选择 Run As -> Run Configurations... 然后点击 (x)= Arguments tab并将输入传递给 Program arguments

相关问题