Бинарный поиск в 2D -массиве с использованием пользовательского компаратораJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Бинарный поиск в 2D -массиве с использованием пользовательского компаратора

Сообщение Anonymous »

У меня есть 2D целочисленного массива [n] [3] < /code> и целевое значение.
Я сортирую массив с помощью < /p>

Код: Выделить всё

Arrays.sort(arr, (a,b)->Integer.compare(a[1],b[1]));
Как я могу использовать Arrays.binarysearch и пользовательский компаратор для поиска ARM вдоль индекса 1 для целевого значения? Что -то, что может заменить следующее: < /p>

Код: Выделить всё

   int binSearch(int[][] arr, int target) {
int low=0, high=arr.length-1;
while( low < high ) {
int mid=(low+high)/2;
if( arr[mid][1] == target ) {
return i;
}
else if( arr[mid][1] < target {
low=mid+1;
}
else {
high=mid-1;
}
}
return -(low+1);
}
edit: arrays.sort работает, как мне это нужно - мой первоначальный массив, например {{1,3,5}, {7,1,6 }, {4,2,1}} сортирует со средним значением до {{7,1,6}, {4,2,1}, {1,3,5}}
Я думал, что могу написать аналогичное выражение для массивов. BinarySearch, где каждый элемент (1x3) массива сравнивается с целым целым числом. Что -то вроде: < /p>

Код: Выделить всё

int idx = Arrays.binarySearch(arr, target, (a,b)->Integer.compare(a[1],b));
Я не могу действительно использовать тот же компаратор, что и в таком роде, потому что они разные типы - массив поиска представляет собой массив элементов размером 1x3 , а моя цель - единственный целое число. Мне нужно сделать бинарный поиск.

Подробнее здесь: https://stackoverflow.com/questions/718 ... comparator
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»