я пытаюсь сделать алгоритм поиска с помощью дозорных, которые снижают время 3.87n наносекунд , например, по сравнению с этого кодомалгоритма поиска с использованием часовых
int search (int t){
for (int i=0;i<n;i++)
if (x[i]==t)
return i;
return -1;
}
это занимает 4,06 наносекунд
так я пытаюсь оптимизировать его здесь код
public class Search{
public static int search(int a[], int t) {
int i;
int p=0;
int n=a.length;
int hold;
hold=a[n-1];
a[n-1]=t;
for (i=0;;i++)
if (a[i]==t) break;
a[n-1]=t;
if (i==n){
p= -1;
} else{
p= i;
}
return p;
}
public static void main(String[]args){
int t=-1;
int a[]=new int[]{4,5,2,6,8,7,9};
System.out.println(search(a,t));
}
}
но показать мне, что 9 находится в положении 6, который является правильным, но если т = 1 или что-то другое, что не является массивом этого шоу я позиция 6 тоже, пожалуйста, помогите
Можете ли вы перефразировать ваш вопрос немного более полированным английском? И переформатируйте фрагмент кода, я не могу поверить, что все эти пробелы необходимы. – Pieter
Ваш второй алгоритм не будет работать быстрее. – Max
http://stackoverflow.com/questions/2496013/is-this-linear-search-implementation-actually-useful – helpermethod