私は10個のメッセージのコレクションを持っています。 定期的に私は古いメッセージのいくつかを新しいものに置き換えてそのコレクションを更新し、その間に多くの好きなものを持っているので、コレクションには10個のメッセージが含まれ、好きな数でソートされます。ソートされたコレクションに効率的に挿入
私は、既存のメンバーメッセージに対して、コレクションからメッセージを挿入または削除するAPIを持っています。 insert(message_id, relative_to, above_or_bellow)
およびremove(message_id)
。コレクションが常にソートされ、最後に10の長さになるように新しいメッセージを挿入する位置を最適化することで、api呼び出しの回数を最小限に抑えたい。 (プロセスの長さと順序は関係なく、プロセスの最後で)
私は新しいコレクションを計算して新しい位置には一致しないメッセージだけを置き換えることができますが、さらに最適化され、アルゴリズムが存在すると信じています既に。
編集:
は、メッセージを1つずつ付属していませんが、時間間隔で、私は新しいメッセージを集め、それらを並べ替え、そして私は、APIを介してサイト上で公開する新しいコレクションを作る意味、「定期的に」という言葉に注意してください。 。だから、私は2つのコレクションを持って、1つはメモリ内の単純な配列であり、他はサイト上にあります。
アイデアは、http API呼び出しを保存するために、保持する必要がある既に挿入されたメッセージとその順序を更新コレクションに再利用することです。既存のコレクションを、既知の結果のコレクションに変換するために再利用できる既存のアルゴリズムがあると思います。
あなたはまだ何をしましたか? –
こんにちは!テキストに改行を挿入して、もう少し構造を整えることができますか?私は、人々があなたの複雑な問題を十分によく理解するためには、追加の構造が非常に必要であると感じています。 –
改行が挿入されました。複雑なソリューションでは簡単な問題です。 –