求多个比较条件的优先队列算法实现思路
类似于买股票:所有买入同一支股票的人进行排队,排队的原则是:价格优先、时间优先、数量优先。
测试思路如下:
int mian()
{
BuyStock(6.8, 100); // 第一个人购买股票数量100,每股出价6.8元
Sleep(100);
BuyStock(7.0, 1000); // 第二个人购买股票数量1000,每股出价7.0元
// 假设第二个人在优先队列中应该排在的一个人前面(因为买入价格和数量都要大于的一个人,但是时间晚于的一个人),应该怎么设计才公平
}
[解决办法]
凡是排序总要有个比较的基准
您这个基准就要根据价格优先、时间优先、数量优先 定出来
具体系数怎么设计 看您的需求
比如:
基准=时间*60%+数量*30%+价格*10%