Java rekurzív bináris keresőstratégia ciklus nélkül?
Tudnátok segíteni ebben a feladatban, hogy hogyan kezdjem el?
Az a feladat, hogy van egy csökkenő sorrendben rendezett tömbünk és ebben meg kell keresni egy számot, illetve azt is megadjuk, hogy a tömb hányadik elemétől hányadik eleméig keressen
Ezzel a metódussal kell:
public static int binSearchRec(int x, int[] fallen, int from, int to)
-x: A keresett szam
-fallen: Különböző egész számokat tartalmazó csökkenőbe rendezett tömb
-from: A tömb vizsgálandó szakaszának kezdőindexe ( from >= 0 )
-to: A tömb vizsgálandó szakaszának záróindexe ( to < fallen.length )
Példák:
input1: binSearchRec(100, new int[]{100, 71, 30, 21}, 0, 3) -> output1: 1
input2: binSearchRec(21, new int[]{3089, 1071, 568, 123, 21}, 0, 4) -> output2: 5
input3: binSearchRec(55, new int[]{89, 71, 68, 14, 11, 10, 2}, 0, 6) -> output3: 0
input4: binSearchRec(55, new int[]{89, 55, 53, 14, 11, 10, 2}, 0, 6) -> output4: 2
input5: binSearchRec(70, new int[]{90, 80, 70, 60, 50, 40, 30}, 2, 2) -> output5: 3
input6: binSearchRec(70, new int[]{90, 80, 70, 60, 50, 40, 30}, 3, 6) -> output6: 0
if(from > to)
    return 0;
int median = (from + to) /2;
if(fallen[median] > x)
    return binSearchRec(x, fallen, median, to);
else if(fallen[median] < x)
    return binSearchRec(x, fallen, from, median);
else //fallen[median] == x
    return median+1; //Results are 1-indexed
Kb így. Bear in mind, ez cska egy általános pszeudokód féleség, ami bemutatja a logikát, és nem garantálom, hogy ez így ebbena formában le is fordul.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!