2017-01-13 3 views
0

У меня есть проект, где я должен определить индекс положительных/отрицательных целых чисел в заданном массиве.Как определить индекс некоторых элементов в отсортированном массиве в java?

Я знаю, что мне нужно отсортировать массив и использовать Arrays.binarySearch(), но я не знаю, как это сделать. Кто-то предложил мне использовать списки, но я не настолько продвинутый. Не могли бы вы мне помочь?

Например, у нас есть этот «array = [0, -22, 8, 99, -4, 0, -2, 8]». После его сортировки я не знаю, как связать массив с методом «binarySearch», чтобы перечислить все положительные элементы.

+0

Google - ваш друг [bynari search] (https://en.wikipedia.org/wiki/Binary_search_algorithm), и есть много способов сделать это. – Gatusko

ответ

-1

"Binary search" используется для поиска. Вы можете использовать алгоритмы пузыря, вставки, выбора, слияния, кучи, оболочки или быстрого сортировки. Следующие анимации на улицах помогут им работать.

https://www.toptal.com/developers/sorting-algorithms

0

Этот алгоритм печатает вы все положительное целое число в вашем данном массиве. Может быть, где вы ищете:

Integer[] array = { 0, -22, 8, 99, -4, 0, -2, 8 }; 

Arrays.sort(array); 
int i = Arrays.binarySearch(array, 1); 

i = (i < 0) ? (i * -1) - 1 : i; 

for (int j = i; j < array.length; j++) 
{ 
    System.out.println("found positive int: " + array[j]); 
} 

Как вы можете интерпретировать возвращаемое значение метода двоичного поиска объясняется в Java API docs.

+1

Отрицательные результаты 'binarySearch' означают, что элемент не находится в массиве, но это значение равно' (- (точка вставки) - 1) ', поэтому вы можете узнать, где вам нужно будет вставить его, чтобы сохранить массив отсортирован. –

Смежные вопросы