2つの2Dアレイを考えます (購入配列)および (sell array)それぞれ elementは浮動小数点値の配列に関連付けられ、各浮動小数点値は整数の配列に関連付けられます。
例えば
B = [
0001 => [ 32.5 => {10, 15, 20},
45.2 => {48, 16, 19},
...,
k1
],
0002 => [ 35.6 => {17, 35, 89},
68.7 => {18, 43, 74},
...,
k2
]
]
同様に、sell配列についても同様です。
これは、株式/商品取引所の注文関連付けシステムに似ています。
BuyOrderBook = [
CompanyName => [
Price1 => [Qty1, Qty2...],
Price2 => [Qty1, Qty2...]
]
SecondCompany = [...]
]
次の問題を解決するために知られている最速の方法は何ですか?
入力:配列を購入、アレイの販売
問題:あるかどうかを決定する そして と そして 。
つまり、取引所の注文を照合するための最も重要な方法は何ですか?
コメントに応じて更新
MSFTには25株@ 60 ドルの販売があり、MSFTの10株に対して61 ドルを提供することをいとわない買い手がいるとします。次に、買い手は60 ドル @ 60を受け取り、買い注文のブックは空になりますが、売り注文のブックは新しい数量で更新されます-15シェア@ 60 ドル。
今度は逆のケースを考えてみましょう。MSFTには25株@ 60 ドルが購入されており、MSFTの10株に対して61 ドルを受け取ることをいとわない売り手がいます。その後、売り手は最低$ 61を要求し、買い手は最高$ 60を提供しているため、取引は実行されません。注文は保存され、新しい注文が受信されるまで待機します。
(これは指値注文の原則です。売り手は売りたいと思う最低価格を指定し、買い手は買いたいと思う最高価格を指定します)。
実行後、売り注文帳は(25-10)=15@86.5となり、買い注文帳は空(10-10)= 0になります。