2012-04-25 6 views
-3

実際に、私は宿題に取り組んでいます。そして、私は本当に立ち往生しています。バイナリ検索文字列の多次元配列

私は正しい方法でJavaを学ぶ必要があります。私の先生は、バイリンガル・サーチ・ストリングについて教えていませんでした。だから、話題について研究するのに少なくとも数時間はかかりました。

私は簡単な説明とコードが必要です。たとえばため

String[][] data={{"John abc","123"},{"Nike cbd","321"}}; 

私は 'ジョン' を検索するための入力を必要とし、それはジョン・ABC、123 'の出力を表示します。

誰かがバイナリ検索の原則についていくつかのガイダンスを提案できますか?

+1

あなたがオンラインチュートリアルを探してください。これは私たちの誰よりも良い説明をするでしょう – ControlAltDel

答えて

3

文字列は、アルファベット文字列の比較を使用して、数字と同じようにソートして比較することができます。簡潔にするために英語のみを仮定しましょう。 "ABD"は "ABC"よりも大きくなります。

したがって、あなたが持っているリストがもちろんソートされていれば、数字のために見つけたバイナリ検索アルゴリズムの例は文字列で動作します。アイデアはもちろん簡単です - あなたが正しいものを見つけるまで、反復ごとに候補を半分に絞ります。

2

Arrays.binarySearchは現在、1次元配列でサポートされています。

したがって、配列を1次元に絞り込み、binarySearch()と呼ぶ必要があります。

例:

for(String[] oneDimension : multiDimension){ 
    Arrays.sort(oneDimension); 
    Arrays.binarySearch(oneDimension, 'search-field'); 
}