-3

実は、私は宿題に取り組んでいます。そして、私は本当に立ち往生しています。

私は正しい方法で Java を学ぶ必要があります。私の先生は、文字列を使った二分探索について教えてくれませんでした。そのため、このトピックについて調査するのに少なくとも数時間は費やさなければなりませんでした。

簡単な説明とコードが必要です。

たとえば:

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

「 John 」を検索するための入力が必要で、「 John abc, 123 」という出力が表示されます。

誰かが二分探索の原則に関するガイダンスを提案できますか?

4

2 に答える 2

3

文字列は、アルファベットの文字列比較を使用して、数値と同じように並べ替えて比較できます。簡単にするために英語のみを想定してみましょう。「ABD」は「ABC」よりも大きくなります。

したがって、リストがもちろんソートされていれば、数字に対して見つけたバイナリ検索アルゴリズムの例は文字列でも機能します。もちろん、アイデアは単純です。適切な候補が見つかるまで、反復ごとに候補を半分に絞り込みます。

于 2012-04-25T21:09:15.883 に答える
2

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

したがって、配列を1次元に絞り込んでから、を呼び出す必要がありますbinarySearch()

例:

for(String[] oneDimension : multiDimension ){
   Arrays.sort(oneDimension);
   Arrays.binarySearch(oneDimension, 'search-field');
}
于 2012-07-11T16:24:05.490 に答える