Hãy xem xét hai mảng 2D (mảng mua) và (mảng bán) trong đó mỗi phần tử được liên kết với một mảng các giá trị dấu phẩy động và từng giá trị của dấu phẩy động, lần lượt, được liên kết với một loạt các số nguyên.
Ví dụ
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
]
]
và tương tự cho các mảng bán.
Điều này giống như một hệ thống liên kết đặt hàng của một sàn giao dịch chứng khoán / hàng hóa
BuyOrderBook = [
CompanyName => [
Price1 => [Qty1, Qty2...],
Price2 => [Qty1, Qty2...]
]
SecondCompany = [...]
]
Cách nhanh nhất được biết để giải quyết vấn đề sau đây là gì:
Đầu vào: Mua mảng , Bán mảng Vấn đề: Quyết định thời tiết có và với và .
Nói tóm lại, cách thức phù hợp nhất với các đơn đặt hàng để trao đổi là gì?
Cập nhật để phản hồi ý kiến
Hãy nói rằng, MSFT có 25 cổ phiếu @ 60 đô la sẽ được bán và có người mua sẵn sàng cung cấp 61 đô la cho 10 cổ phiếu MSFT. Sau đó, người mua nhận được 10 cổ phiếu @ $ 60 và sổ lệnh mua trở nên trống trong khi sổ lệnh bán bây giờ được cập nhật với số lượng mới - 15 cổ phiếu @ $ 60.
Bây giờ lấy trường hợp ngược lại, MSFT có 25 cổ phiếu @ 60 đô la để mua và có người bán sẵn sàng nhận 61 đô la cho 10 cổ phiếu MSFT. Sau đó, giao dịch sẽ không được thực hiện vì người bán yêu cầu tối thiểu 61 đô la và người mua đang cung cấp tối đa 60 đô la . Các đơn đặt hàng hiện được lưu trữ và chờ đợi cho đến khi nhận được đơn đặt hàng mới.
(Đây là nguyên tắc lệnh giới hạn , trong đó người bán chỉ định giá tối thiểu mà anh ta sẵn sàng bán và người mua chỉ định giá tối đa mà anh ta sẵn sàng mua).
Thực hiện bài, sổ đặt hàng bán sẽ là (25-10) = 15@86.5 trong khi sổ đặt mua sẽ trống (10-10) = 0.