Как запускать программы на Java из учебника Алгоритмов Роберта Седжвика? - PullRequest
0 голосов
/ 04 февраля 2019

Я прошу прощения за вопрос новичка.Я пытаюсь запустить программы на Java в Eclipse, приведенные в книге Роберта Седжвика и Кевина Уэйна «Алгоритмы», 4-е издание: 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.Любая помощь будет оценена.

Ответы [ 3 ]

0 голосов
/ 04 февраля 2019

Щелкните правой кнопкой мыши по вашей программе и выберите Run As -> Run Configurations... Затем перейдите на вкладку (x)= Arguments и передайте входные данные в программу под Program arguments

0 голосов
/ 07 февраля 2019

Спасибо всем!Я решил это.Очевидно, что более новые библиотеки, представленные на сайте книги, немного отличаются от имеющейся у меня книги.

Я изменил основную функцию следующим образом:

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.

0 голосов
/ 04 февраля 2019

Зайдите в «Выполнить настройку ...», открыв меню кнопки воспроизведения.Picture

Вы найдете то, что вам нужно, в аргументах, вкладке среды и общем.На самом деле распространенным является вкладка, которая вам нужна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...