Wyszukiwanie binarne

0

Witam, mam mały problem z następującym zadaniem:

Mam do napisania 2 wyszukiwania binarne:

  1. Wybiera tylko jeden przedział w lewo lub w prawo
  2. Dodatkowo sprawdza czy środkowy element jest szukanym

przy każdym z nich mam zliczać ilość operacji: przypisania, porównania

Program ma wczytać dwie tablice:
tablice z liczbami do znalezienia w pierwszej.
Potem wykona szukanie każdej liczby z drugiej tablicy w pierwszej przy użyciu zaimplementowanych algorytmów, i wyświetli porównanie ilości zużytych operacji.

Proszę o pomoc...

0

A jakiego rodzaju pomocy oczekujesz?
Algorytmu wyszukiwania? Programowanie w Javie? Czy może napisanie całego programu za Ciebie?

0

Musze napisac implementacje. Wiem jak napisać samo wyszukiwanie bin ale nie do końca potrafie to zrobić z tymi 2 tablicami.

0

Tu mam coś takiego ale nie do końca to działą :/ może ktoś poprawi

import java.util.LinkedList;

public class Bin2 {

static LinkedList<String> SearchBin(int[] search, int[] tab) {
	int searchLen = search.length;;
	LinkedList<String> wynik = new LinkedList<String>();

	for (int i = 0; i < searchLen; i++) {
		int left = 0, right = searchLen;
		int middle=(left + right)/2;
		int temp = search[i];
		while (left < right) {
			middle = (left + right) / 2;
			if (tab[middle] < temp) {
				left = middle + 1;
			} else {
				right = middle;
			}
		}
		if (tab[middle] == temp){
			wynik.add("Znalazłem " + temp + " na pozycji " + (middle+1));
		}
	}
	return wynik;
}

public static void main(String[] args) {

	int[] search = { 5 ,30, 35 };
	int[] tab = { 1, 3, 5, 10, 17, 30, 35, 99 };
	System.out.println(SearchBin(search, tab));
	
}

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1