2

これはインタビューの質問でした。

「株式に対して毎秒1000の入札を受け取ります。上位50の入札を保存し、平均を計算します。どのように?」

4

1 に答える 1

12

「リアルタイムソート」はしません。これまでの上位50件の入札のヒープ(優先キュー)データ構造を使用する可能性があります。次の入札が最小値を上回っている場合は、最小値を削除してから、新しい入札額を挿入します。優先キューを使用すると、最小値をすばやく見つけて削除し、新しい値を追加できます。

新しい入札と離脱入札の差の1/50を加算することで、平均値を維持できます(新しい入札が50番目に高い入札よりも優れている場合のみ)。

于 2011-09-14T03:20:25.750 に答える