0

アルゴリズムについて 1 つ質問があります。私はこれに関するアルゴリズムを書くように頼まれました: 私のためにアルゴリズムを書くようにあなたに頼むのではなく、私がする必要がある効率的なプロセスを教えてください:

本や聖書の内容のような n 個の要素の配列があり、その中に入力文字列「Gaurav Agarwal」を挿入したとします。あなたがしたいことは、その文字列の配列に存在する一意の要素を取得する必要があります。どのように先に進むかのアルゴリズム (未ソート)

あなたが理解していない場合は、私に知らせてください.

4

4 に答える 4

1

並べ替えられていない配列で重複を見つける良い方法の 1 つは、文字列要素に基づいて並べ替えることです。したがって、宿題の質問のアルゴリズムは次のようになります。

  1. 配列をソートする
  2. 「Gaurav Agarwal」の存在について配列を確認してください。並べ替えられているため、隣接する要素は同じ文字列になります。次に行う必要があるのは、カウンターを保持し、探している文字列と等しくない最初の配列要素が見つかるまでインクリメントすることです。
于 2011-07-04T05:00:16.570 に答える
1

文字列配列をソートしてから解析するには時間がかかります。文字列の配列を解析し、文字列の長さが配列の現在の位置からの文字列の長さと同じかどうかを確認することをお勧めします。長さが同じ場合は、2 つの文字列を比較します。

于 2016-11-21T14:39:05.140 に答える
0

並べ替えと検索が問題に対する最も効率的な解決策だとは思いません。

並べ替え自体の複雑さは nlogn です。

配列のブルートフォース検索を行うだけでより効率的です(複雑さはnです)

これは、1 つまたはいくつかの文字列の一意の要素を見つける場合に当てはまります。1 つだけではなく、多くの入力文字列に対して一意の要素を見つけようとしている場合は、並べ替えが理にかなっています。

于 2015-10-13T06:30:08.820 に答える