-2

これを達成するのに役立つアルゴリズムを探しています。送信者から受信者への不明な数のメッセージを取得するプログラムをCで作成する必要があります。23 から 12、44 から 19 などのように、メッセージの 10% 以上を担当するすべての送信者/受信者を返す必要があります。ハッシュテーブルを使用できます。

ありがとう

4

1 に答える 1

1

この記事では、このためのアルゴリズムについて説明します。
ハッシュ テーブルは使用せず、10 エントリの単純な配列を使用します (10% = 1/10 であるため)。
100% 正確というわけではありません。10% を使用しているものは確実に検出されますが、これより少ない使用率のものも検出される可能性があります。

アルゴリズムの簡単な説明:

  1. 10 個のアイテムとカウンターのリストを維持します。最初、リストは空です。
  2. 入力のすべての項目について、リストにある場合はカウントを増やします。
  3. そうでない場合は、カウント 1 でリストに追加します。
  4. この追加によりリストが 10 を超えた場合は、リスト内のすべての要素のカウントを減らし、0 になった要素を削除します。リストは必ず 10 以下のサイズに戻ります。
于 2012-08-06T10:56:26.493 に答える