我想在排序数组中的索引处插入一个项目。我应该使用二分搜索还是下面的实现好?
以下实施不起作用,但概念很清楚。由于某种原因,它给了我一个错误:“Value'Double'没有成员0”但是当我摆脱它运行的&& $1.0 > price
但是没有做我想要的。如何使用下面的方法或任何更好的方法在两个值之间的数组中插入值?
如果我可以更新第二个(数量)值,如果数组中已有价格,那将是一个额外的好处。例如,如果在原始数组中值为(20,5),其中price为20,我希望将该索引更新为(20,9)。
数组是一个双打数组,表示该价格的价格和数量。我不能使用字典,因为它需要保持有序。
我将在阵列中拥有超过10K的项目。
这是我的代码。
let largeArray = [(10, 3), (20, 5), (30, 6), (40, 1), (50, 3), (60, 3)]
let price = 45
if let indexInsert = largeArray.index(where: {$0.0 < price && $1.0 > price}) {
self.sellSideOrderBook.insert(((45, 2)), at: indexInsert)
}