Как распечатать оставшиеся данные после каждого прохода? - PullRequest
0 голосов
/ 13 апреля 2020

Я работал над этой проблемой для школы

"Напишите программу двоичного поиска, которая ищет следующие 3 значения 74, 35, 62 (Да, я знаю ...)) в предоставленный набор данных. Ваше приложение должно распечатывать оставшиеся данные после каждого прохода. Набор данных: 23 27 29 31 35 39 40 41 52 66 71 74 75 90 99 "

В настоящее время я закодировал до часть, где я нахожу место поиска значения. Я просто не знаю, как распечатать оставшиеся данные после каждого прохода. Пожалуйста, помогите.

Это мой код:

import java.util.Scanner;

class BinarySearchTracing{
  public static void main(String args[]){
    Scanner scan = new Scanner (System.in);
    int[] d = {23, 27, 29, 31, 35, 39, 40, 41, 52, 66, 71, 74, 75, 90, 99};
    int start = 0;
    int middle = 0;
    int end = d.length - 1;
    int location = -1;
    boolean found = false;

    System.out.println("Enter the look for value: ");
    int lookfor = scan.nextInt();
    scan.close();

    while(start <= end && found == false) {
        middle = (start + end) / 2;
        if(d[middle] == lookfor) {
            found = true;
            location = middle;
        }
        else if(d[middle] < lookfor) {
            start = middle + 1;
        }
        else {
            end = middle - 1;
        }
    }
    System.out.println(location);
  }
}

Ответы [ 2 ]

0 голосов
/ 13 апреля 2020

Делать это с помощью бинарного поиска бессмысленно, но так как вы должны это сделать, я могу дать вам один из возможных способов,

После того, как вы найдете местоположение, вам придется перебирать массив и строить строку используя построитель строк, пропуская только местоположение, которое вы нашли с помощью бинарного поиска

Если вам нужно удалить элемент из массива после его поиска, то лучше создать новый массив с оставшимися значениями и использовать System.out.println(Arrays.asList(new array))

0 голосов
/ 13 апреля 2020

Для печати подмассива данного массива между двумя индексами, вы можете использовать один из следующих методов :

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