я делаю алгоритм поиска прыжок, но это показывает мне, что элемент не в массиве, а это здесь кодпрыжок алгоритм поиска
import java.math.*;
public class jamp {
public static int min(int a,int b) {
return a<b?a:b;
}
public static void main(String[]args) {
int a[]=new int[]{3,7,9,12,14,15,16,17,18};
int l=14;
System.out.println(jumpsearch(a,a.length,l));
}
public static int jumpsearch(int a[],int n, int l) {
int t=0;
int b=(int)Math.sqrt(n);
while (a[min(b,n)-1]<t){
t=b;
b=b+(int)Math.sqrt(n);
if (t>=n) return -1 ;
}
while (a[t]<l){
t=t+1;
if (t==min(b,n))
return -1 ;
if (a[t]==l) {
return t;
}
}
return -1;
}
}
пожалуйста, помогите
Дружеский совет: прекратить давать переменные одно имя письма, это делает код, который вы создаете, очень трудно проникать, даже если его мало. Попадая в привычку правильно называть ваши переменные, вы гарантируете, что будущие прикомандисты будут счастливыми отдыхающими. –
Используйте отладчик, который вы можете найти в наиболее известных Java IDE, таких как Eclipse или NetBeans, для прохождения кода по строкам и следить за тем, что происходит. – Jesper