2017-01-13 9 views
0

私は与えられた配列の正/負の整数のインデックスを決定する必要があるプロジェクトを持っています。Javaでソートされた配列の特定の要素のインデックスを調べる方法は?

私は配列をソートしてArrays.binarySearch()を使用しなければならないことは知っていますが、どのように行うのか分かりません。誰かが私にリストの使用を提案しましたが、私はそれが進んでいません。手伝っていただけませんか?

たとえば、この「array = [0、-28、99、-4、0、-2、8]」があります。それをソートした後、配列を "binarySearch"メソッドに関連させてすべての正の要素をリストする方法を知らない。

+0

Googleはあなたの友達[bynari search](https://en.wikipedia.org/wiki/Binary_search_algorithm)であり、それを実行する方法はたくさんあります。 – Gatusko

答えて

-1

「バイナリ検索」を使用して検索します。バブル、挿入、選択、マージ、ヒープ、シェル、またはクイックソートアルゴリズムを使用して、あなたに合わせることができます。ストリートの次のアニメーションは、彼らがどのように働くのに役立ちます。

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) 'なので、配列を保持するために挿入する必要がある場所を知ることができます並べ替えられました。 –